Вот несколько подробностей о том, как решить эту проблему из конца в конец:
Вам нужно сделать две вещи, чтобы убедиться, что статус установлен правильно при установке ...
- Напишите сценарий 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"))
Копировать в инструменты
Необходимо скопировать установкуФайл .ps1 в каталоге Tools для скрипта, который будет выполняться nuget.Для этого вы можете добавить следующее в шаблон nuspec.
<files>
<file src="install.ps1" target="Tools"/>
</files>
Обратите внимание, в этом случае у меня есть файл install.ps1 в корне моего проекта Visual Studios и помеченный как «Копировать, если новее».