2

我正在创建一个项目模板。我想让它通过 NuGet 自动安装统一和棱镜。

我在这里阅读了如何做到这一点。我设置了我的 vstemplate 文件,如该页面所示:

 <WizardExtension>
    <Assembly>NuGet.VisualStudio.Interop, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</Assembly>
    <FullClassName>NuGet.VisualStudio.TemplateWizard</FullClassName>
  </WizardExtension>
  <WizardData>
    <packages>
        <package id="CommonServiceLocator" version="1.0" />
        <package id="Prism" version="4.1.0.0" />
        <package id="Prism.UnityExtensions" version="4.1.0.0" />
        <package id="Unity" version="2.1.505.0" />
    </packages>
  </WizardData>

它似乎设置正确,但它不起作用。当我尝试使用我的模板时,我收到以下错误消息:

无法将所有必需的包添加到项目中。以下软件包无法从“C:\Users\MyUser\AppData\Roaming\Microsoft\VisualStudio\10.0\ProjectTemplatesCache\MyTemplate.zip”安装

我做了一些查找,要使向导工作,它需要安装在 GAC 中。我运行了这个命令:

gacutil.exe /l NuGet.VisualStudio.Interop

它返回了:

全局程序集缓存包含以下程序集:

项目数 = 0

所以它似乎不在GAC 中。问题是:那么这对其他人有什么作用呢?如果它需要在 GAC 中,那么为什么它不自动存在呢?

如果没有,那为什么它不起作用(我很确定它需要在 GAC 中)。

注意:我确实在这里找到了那个 dll:

C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\Extensions\Microsoft Corporation\NuGet Package Manager\1.6.21215.9133

4

2 回答 2

1

我发现我错过了文档的这个重要部分:

模板需要指定在哪里可以找到包 nupkg 文件。目前支持两个包存储库:

嵌入在 VSIX 包中的包。
嵌入在项目/项目模板本身的包。

因此,无法从实际的 NuGet 存储库中获取包。

于 2012-03-18T21:17:16.167 回答
-1

这个问题的答案:

打开 Visual Studio > 工具 > 扩展和更新 > 选择在线链接,然后在右侧搜索栏键入 NuGet 包管理器。然后下载并安装。解决您的问题

于 2014-10-26T17:14:37.253 回答