C# 如何在VisualStudio项目模板中添加引用和NUGET?

C# 如何在VisualStudio项目模板中添加引用和NUGET?,c#,visual-studio-2015,nuget,project-template,C#,Visual Studio 2015,Nuget,Project Template,是否有在项目模板中添加NUGET和引用的说明? 最好的方法是添加无版本的nuget。 nuget不是从nuget.org添加的,而是从内部公司资源添加的 我的意思是。红色框中是来自NUGET的引用,蓝色框中是使用addreference包含的引用 使用导出模板后看不到任何引用 当我用我的模板创建新项目时,我在nuget引用上看到错误,在PC的引用上没有错误(但它们的绝对路径不在项目中,所以我不能将模板分发给其他开发人员) 关于nugets,请使用软件包管理器控制台并添加(例如:安装软件包Ne

是否有在项目模板中添加NUGET和引用的说明?

最好的方法是添加无版本的nuget。 nuget不是从nuget.org添加的,而是从内部公司资源添加的

我的意思是。红色框中是来自NUGET的引用,蓝色框中是使用
addreference
包含的引用

使用
导出模板后
看不到任何引用

当我用我的模板创建新项目时,我在nuget引用上看到错误,在PC的引用上没有错误(但它们的绝对路径不在项目中,所以我不能将模板分发给其他开发人员)


关于nugets,请使用软件包管理器控制台并添加(例如:
安装软件包Newtonsoft.Json
),然后单击enter

对于引用,根据图像,它可能引用GAC,而不是解决方案的本地bin文件夹。最好的方法是始终在Bin/Reference文件夹中维护引用,然后从中引用

在这种情况下,您需要再次导入dll


希望有帮助

有关使用nuget Packages创建项目模板的具体说明,请参见。遗憾的是,如果没有版本号,则无法将nuget包添加到项目模板中:

该向导支持多个元素。id和 版本属性是必需的。这样做的一个重要后果是 即使安装了更新版本的软件包,也将安装特定版本的软件包 在线软件包提要中提供了该版本

此行为的原因是包的未来版本 可能会引入与项目/项不兼容的更改 模板。将软件包升级到最新版本的选项 使用NuGet留给处于最佳位置的开发人员使用 承担将软件包升级到最新版本的风险

vstemplate(这是在模板膨胀时调用包下载所必需的):


NuGet.VisualStudio.Interop,版本=1.0.0.0,区域性=中性,PublicKeyToken=b03f5f7f11d50a3a
NuGet.VisualStudio.TemplateWizard
套餐清单:

<WizardData>
    <packages>
        <package id="jQuery" version="1.6.2" />
    </packages>
</WizardData>


上面链接的nuget网站上还记录了其他选项,例如创建
VSIX
模板。

最后一张图像有错误:您读过吗。这似乎表明始终需要特定的版本。我看不出有什么办法总是能得到最新消息。谢谢你的回答!但我的意思是那个问题:如何创建包含金块和引用的模板,这样当有人使用它创建新项目时,他不会得到任何错误,所有引用都会工作?你可以创建一个包含所有金块的解决方案。对于引用,首先将所有dll添加到解决方案中包含的引用文件夹中,然后从该文件夹将引用添加到项目中。现在你可以走了,谢谢。我知道如何处理引用,但不确定Nuget。您可以说
关于nuggets,使用PackageManager控制台和add(例如:安装包Newtonsoft.Json),然后单击enter。
但我希望Nuget在创建新项目时自动从存储库中获取。我想应该是.vstemplate文件中的一些字符串。请参阅我以前的评论。当您添加解决方案(非项目)并添加nugget时,即使它被压缩,它也将可用,因为这是解决方案。它可能会出错,例如:(1)当旧的引用未指向可用的NuGet版本时,或者(2)当您的引用指向包外的dll时,例如,在\Binaries中。子目录将不包括在模板zip中,解压缩时会出现感叹号。对于使用Antlr.Runtime的组件,我在使用旧模板时遇到问题。我首先在cproj中删除了对/Binaries的依赖,然后我不得不用更新的版本3.1.1替换包版本。。当我使用这个现有的NuGet引用导出模板时,一切正常。
<WizardData>
    <packages>
        <package id="jQuery" version="1.6.2" />
    </packages>
</WizardData>