首页 文章

NuGet Package安装VSIX

提问于
浏览
2

我们在公司开发了一个“自定义工具”类型VSIX Visual Studio Extension . 此扩展从某些xml文件生成C#代码 . 现在我有一个项目,它们会根据构建产生VSIX .

Goal: I would like to also wrap this VSIX into a NuGet package, what my fellow developers can install onto their solution. 所以我'm searching for some kind of Project Template or something for that. Or it is even good if there'触发现有项目中的进程(现在生成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中等等 . 这些对我来说都是偏离主题的 . 理论上我的要求不那么复杂 .

1 回答

  • 2

    前段时间我使用VSIXCommands创建了一个实际完成这项工作的软件包 . 只需引用VSIXCommand包并将包中的install.ps更改为:

    param($installPath, $toolsPath, $package, $project)
    
    $id = 'yourPackageId'
    $extension = Get-InstalledVsix $id
    
    if(!$extension) {
        Install-GalleryVsix $id
    }
    

相关问题