【发布时间】:2014-06-25 22:37:21
【问题描述】:
我们在公司开发了“自定义工具”类型的 VSIX Visual Studio 扩展。此扩展从某些 xml 文件生成 C# 代码。现在我有一个项目会生成 VSIX 作为构建的结果。
目标:我还想将此 VSIX 包装到 NuGet 包中,我的开发人员可以将其安装到他们的解决方案中。 所以我正在寻找某种项目模板或类似的东西.或者,如果在现有项目(现在产生 VSIX)中有触发流程的东西,那就更好了。 我似乎在 Visual Studio (2013) 中找不到任何模板。
额外的讨论:如果我要手动为 VSIX 创建 NuGet 包,那该怎么做?我正在查看 NuGet 包资源管理器。我应该添加哪些文件以及在什么目录层次结构中?我有一个 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 中等等。这些对我来说是题外话。我的要求在理论上没有那么复杂。
【问题讨论】:
-
这似乎有点奇怪。 Nuget 包被安装到一个项目中; VSIX 安装在 Visual Studio 上。也就是说,您可能希望为此利用 vsixinstaller.exe。
-
我可能错了。因为“自定义工具”类型的扩展程序集需要注册 regasm 甚至 gacutil,所以 NuGet 安装功能可能还不够。我们的项目原本有一个vdproj类型的安装程序,在VS 2010之后不再支持。可能我们需要开发一个WiX安装程序,我不想走InstallShield LE的方式。
-
我仍然想知道如何创建一个 NuGet 包,该包在安装时会将 VSIX 安装到 Visual Studio 中。我应该在哪里以及如何将 VSIX 文件放入 NuGet 包中?
标签: nuget visual-studio-2013 nuget-package vsix