我们在公司开发了一个“自定义工具”类型VSIX Visual Studio Extension。此扩展从某些xml文件生成C#代码。现在我有一个项目,它们会根据构建产生VSIX。
目标:我还希望将这个VSIX包装成一个NuGet包,我的开发人员可以安装到他们的解决方案中。所以我正在寻找某种项目模板或其他东西。或者甚至是好的,如果在现有项目中触发过程的东西(现在生成VSIX)。 我似乎没有在Visual Studio(2013)中找到任何模板。
Bonus chatter:如果我要手动为VSIX创建NuGet包,那怎么办?我在看NuGet Package Explorer。我应该添加哪些文件以及在哪个目录层次结构中?我有一个VSIX文件(包含extension.vsixmanifest,生成器dll和pkgdef)。 pkgdef指的是生成器程序集,也包括覆盖的语言。如何构建NuGet包?
(Visual Studio SDK中有代码生成器的示例:http://code.msdn.microsoft.com/Visual-Studio-2010-SDK-ddfe1372,请参阅“SingleFileGenerator”示例。我们的扩展目的非常不同,但在架构上是相同的:它从xml生成C#)。
我试图搜索这个问题,但点击的内容是非常不同的场景,比如项目模板类型VSIX以及如何将NuGet包包含到VSIX中等等。这些对我来说都是偏离主题的。我的要求在理论上不那么复杂。
答案 0 :(得分:2)
前段时间我使用VSIXCommands创建了一个实际完成工作的软件包。 只需引用VSIXCommand包并将包中的install.ps更改为:
param($installPath, $toolsPath, $package, $project)
$id = 'yourPackageId'
$extension = Get-InstalledVsix $id
if(!$extension) {
Install-GalleryVsix $id
}