安装VSIX的NuGet包

安装VSIX的NuGet包,nuget,visual-studio-2013,nuget-package,vsix,Nuget,Visual Studio 2013,Nuget Package,Vsix,我们在公司开发了一个“定制工具”类型的VSIX Visual Studio扩展。此扩展从某些xml文件生成C#代码。现在我有一个项目,作为构建的结果生成VSIX 目标:我还想将这个VSIX打包成一个NuGet包,我的开发伙伴可以将它安装到他们的解决方案中。所以我正在搜索某种项目模板或类似的东西。或者,如果在现有项目(现在生成VSIX)中有触发流程的东西,这甚至是好的。 在VisualStudio(2013)中,我似乎找不到任何这样的模板 额外的闲聊:如果我要手动为VSIX创建NuGet包,那会怎

我们在公司开发了一个“定制工具”类型的VSIX Visual Studio扩展。此扩展从某些xml文件生成C#代码。现在我有一个项目,作为构建的结果生成VSIX

目标:我还想将这个VSIX打包成一个NuGet包,我的开发伙伴可以将它安装到他们的解决方案中。所以我正在搜索某种项目模板或类似的东西。或者,如果在现有项目(现在生成VSIX)中有触发流程的东西,这甚至是好的。 在VisualStudio(2013)中,我似乎找不到任何这样的模板

额外的闲聊:如果我要手动为VSIX创建NuGet包,那会怎么样?我在看NuGet软件包浏览器。我应该添加哪些文件以及在哪个目录层次结构中?我有一个VSIX文件(包含扩展名.vsixmanifest、生成器dll和pkgdef)。pkgdef指的是生成器程序集,以及涵盖的语言。如何构造NuGet包

(VisualStudioSDK中有一个代码生成器示例:,请参见“SingleFileGenerator”示例。我们的扩展目的非常不同,但在架构上是相同的:它从xml生成C)


我试着搜索这个问题,但是点击谈论的是非常不同的场景,比如项目模板类型VSIX以及如何将NuGet包包含到VSIX中,等等。这些对我来说都是离题的。我的需求在理论上没有那么复杂。

不久前,我创建了一个包,使用它实际完成了工作。 只需参考VSIXCommand软件包并将软件包中的install.ps更改为类似以下内容:

param($installPath, $toolsPath, $package, $project)

$id = 'yourPackageId'
$extension = Get-InstalledVsix $id

if(!$extension) {
    Install-GalleryVsix $id
}

这似乎有点奇怪。Nuget软件包安装到项目中;VSIX安装在Visual Studio上。也就是说,你可能想利用vsixinstaller.exe来实现这一点。我可能错了。因为“自定义工具”类型exteonsion的程序集需要向regasm注册,甚至可能还需要向gacutil注册,所以NuGet安装功能可能还不够。我们的项目最初有一个vdproj类型的安装程序,在VS2010之后不再受支持。可能我们需要开发一个WiX安装程序,我不想走InstallShield的路。我仍然想知道如何创建一个NuGet包,在安装时将VSIX安装到Visual Studio中。我应该在哪里以及如何将VSIX文件放入NuGet包中?也许这是一个很好的解决方案,但我没有这个项目,也没有时间再尝试它了