NuGet.VisualStudio.Interop.dll应该在GAC中使用它作为向导吗?

时间:2012-03-18 20:53:48

标签: visual-studio-2010 nuget project-template

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

I read here how to do that。我设置了我的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

2 个答案:

答案 0 :(得分:1)

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

  

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

     
    

嵌入在VSIX包内的包。
       包含在项目/项目模板本身内部的包。

  

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

答案 1 :(得分:-1)

回答这个问题:

打开Visual Studio&gt;工具&gt;扩展程序和更新&gt;选择在线链接,然后右侧搜索栏输入NuGet Package Manager。然后下载并安装。解决您的问题