Вот немного подробнее о том, как решить эту проблему от начала до конца:
Вам нужно сделать две вещи, чтобы убедиться, что статус установлен правильно при установке...
- Напишите сценарий install.ps1, чтобы отметить статус файлов.
- Убедитесь, что сценарий install.ps1 находится в каталоге Tools в пакете nuget.
Сценарий Install.ps1
Следующий пример сценария будет рекурсивно помечать каждый файл в каталогах «Содержимое» и «Просмотр» как «Копировать в новый». Обратите внимание, что этот пример сценария написан так, чтобы его было легко прочитать и понять. Он пометит каждый файл в папках Content и Views в корневом каталоге проекта Visual Studios.
param($installPath, $toolsPath, $package, $project)
function MarkDirectoryAsCopyToOutputRecursive($item)
{
$item.ProjectItems | ForEach-Object { MarkFileASCopyToOutputDirectory($_) }
}
function MarkFileASCopyToOutputDirectory($item)
{
Try
{
Write-Host Try set $item.Name
$item.Properties.Item("CopyToOutputDirectory").Value = 2
}
Catch
{
Write-Host RecurseOn $item.Name
MarkDirectoryAsCopyToOutputRecursive($item)
}
}
#Now mark everything in the a directory as "Copy to newer"
MarkDirectoryAsCopyToOutputRecursive($project.ProjectItems.Item("Content"))
MarkDirectoryAsCopyToOutputRecursive($project.ProjectItems.Item("Views"))
Копировать в инструменты
Вы должны скопировать файл install.ps1 в каталог Tools, чтобы скрипт мог быть выполнен nuget. Для этого вы можете добавить следующее в шаблон nuspec.
<files>
<file src="install.ps1" target="Tools"/>
</files>
Обратите внимание, что в этом случае у меня есть файл install.ps1 в корне моего проекта Visual Studios и он помечен как «Копировать, если новее».
person
James Roland
schedule
24.07.2013