Ето малко повече подробности за това как да разрешите този проблем от край до край:
Трябва да направите две неща, за да сте сигурни, че статусът е зададен правилно при инсталиране...
- Напишете скрипта install.ps1, за да маркирате състоянието на файловете.
- Уверете се, че скриптът install.ps1 е в директорията с инструменти в пакета 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 в директорията с инструменти, за да може скриптът да бъде изпълнен от nuget. Можете да добавите следното към шаблона на nuspec, за да направите това.
<files>
<file src="install.ps1" target="Tools"/>
</files>
Забележете, че в този случай имам файла install.ps1 в корена на моя проект Visual Studios и маркиран като „Копиране, ако е по-ново“.
person
James Roland
schedule
24.07.2013