Добавление пользовательского шага сборки с помощью пакета nuget - PullRequest
7 голосов
/ 29 июня 2011

Я разрабатываю пакет nuget, в котором текущий проект будет настроен на использование стандарта управления версиями сборки моей компании. Я делаю все, что хочу (пока) плавно, кроме добавления в пользовательский шаг сборки.

Исторически это делалось вручную путем непосредственного редактирования файла .csproj и добавления пары новых тегов в xml. Это ...

  • Группа недвижимости
  • Target

Он фактически добавляет их успешно, но я сделал это, отредактировав xml, а не через объект EnvDTE в параметре $ project в install.ps1 . Но я получаю сообщение о том, хочу ли я отменить свои изменения.

Я добавил $project.Save() в свой сценарий непосредственно перед внесением изменений, и это избавляет от всплывающего окна, и я просто получаю тот, который сообщает мне, что проект изменился, и спрашивает меня, хочу ли я его перезагрузить. Что лучше, но все же не совсем идеально.

Есть ли лучший способ сделать это?

Ответы [ 2 ]

9 голосов
/ 30 июня 2011

Вы также можете использовать пакет NuGetPowerTools, написанный Дэвидом Фаулером (ведущим разработчиком NuGet).

Install-Package NuGetPowerTools

Добавьте его в качестве зависимости к вашему пакету, затем в сценарии install.ps1 вы можете вызвать:

Add-Import "\Path\To\Import.targets" $project.ProjectName
Set-MSBuildProperty "MyPropertyName" "MyPropertyValue" $project.ProjectName

$value = Get-MSBuildProperty "MyPropertyName" $project.ProjectName

Проверьте код на https://github.com/davidfowl/NuGetPowerTools для получения дополнительной информации.

3 голосов
/ 29 июня 2011

Скотт Хансельман сделал это на mix11.Его методика заключалась в том, чтобы выгрузить проект (используя DTE), изменить его с помощью PowerShell, а затем перезагрузить его (снова используя DTE).

http://channel9.msdn.com/Events/MIX/MIX11/FRM09

...