繁体   English   中英

使用NuGet包资源管理器工具发布具有多个VSIX的Nuget包

[英]Publishing Nuget Packages with multiple VSIX using NuGet Package Explorer Tool

对于我的产品,我有很多VSIX,我希望将它们作为Single Nuget软件包进行分发。 我只希望将3个单独的Visual Studio 2013软件包分发给VS 2013 IDE(不会在VS的早期版本中运行)。

我已经在Nuget上注册,并下载了NuGet软件包资源管理器,在其中输入了软件包的所有元数据。

我在包内容中添加了一个VSIX文件夹,称为VSIX,并添加了三个VSIX扩展名。

我发布了该软件包,尽管我可以从Visual Studio中搜索并运行NuGet软件包,但它似乎没有运行VSIX扩展。

我注意到,当我在NuGet软件包资源管理器中单击任何vsix文件时,它会显示*该文件的格式不受支持。 *

如何通过Nuget软件包部署扩展?

任何帮助都将非常棒!

干杯

您需要将VSIX文件放入包的'tools'文件夹中。 然后,您必须创建init.ps1或install.ps1才能启动vsix的安装过程。 请注意,“解决方案范围的软件包”(即没有内容或lib文件夹的软件包)将不会调用install.ps1。 因此,如果您的软件包只有“ tools”文件夹,则必须将安装逻辑放入init.ps1中。 但是,每次在VS中打开解决方案时都会调用init.ps1。 这是NuGet团队在NuGet 2.6或2.7中所做的一项重大更改(我不记得很清楚)。 所以现在将安装登录名放入init.ps1不再是一个好主意:(

安装脚本如下所示:

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

if (-not $toolsPath) { throw "toolsPath parameter wasn't specified" }

if ($dte.Version -eq "10.0") {
    $vsixFileName = "MyExtensiion.vs2010.vsix"
} elseif ($dte.Version -eq "11.0") {
    $vsixFileName = "MyExtensiion.vs2012.vsix"
} else {
    $vsixFileName = "MyExtensiion.vs2013.vsix"
}

$vsxInstaller = [System.IO.Path]::Combine($toolsPath, $vsixFileName)
Start-Process -FilePath $vsxInstaller 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM