簡體   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