2013-11-16 3 views
0

У меня есть несколько VSIX для моего продукта, который я хотел бы распространять как единый пакет Nuget. Есть 3 отдельных пакета Visual Studio 2013, которые я хочу распространять только для IDE VS 2013 (не будет работать в более ранних версиях VS).Публикация пакетов Nuget с несколькими VSIX с использованием NuGet Package Explorer Tool

Я зарегистрировался на Nuget, и я загрузил NuGet Package Explorer, где я вошел во все метаданные моего пакета.

Я добавил папку VSIX в мое содержимое пакета под названием VSIX и добавил мои три расширения VSIX.

Я опубликовал пакет, и хотя я могу искать и запускать свой пакет NuGet из Visual Studio, он, похоже, не запускает расширения VSIX.

Я замечаю, что когда я нажимаю на любой из моих файлов vsix в NuGet Package Explorer, он говорит, что * Формат этого файла не поддерживается. *

Как развернуть мои расширения с помощью пакетов Nuget?

Любая помощь была бы потрясающей!

Приветствия

ответ

1

Вы должны поставить вас VSIX-файлы в папку «Инструменты» вашего пакета. Затем вам нужно создать init.ps1 или install.ps1, чтобы запустить процесс установки vsix. Обратите внимание: install.ps1 не будет вызываться для пакетов с широким набором решений (то есть пакетов, у которых нет содержимого или папки lib). Поэтому, если ваш пакет имеет только папку «tools», вам нужно будет установить логику установки в init.ps1. Но init.ps1 будет вызываться каждый раз, когда вы открываете свое решение в VS. Это потрясающая команда 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 
Смежные вопросы