Qui è un po 'più in dettaglio su come risolvere questo problema end per finire:
Hai bisogno di fare due cose per garantire lo stato sono impostati correttamente sul installare ...
- Scrivere lo script install.ps1 per contrassegnare lo stato dei file.
- Verificare che lo script install.ps1 si trovi nella directory Tools nel pacchetto nuget.
Install.ps1 Script
Il seguente script di esempio in modo ricorsivo segnerà ogni file nella "Contenuti" e directory "vista" come "Copia di nuovo". Nota questo script di esempio è scritto per essere chiaro da leggere e capire. Contrassegna ogni file nelle cartelle Contenuto e Visualizzazioni nella directory principale del progetto 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"))
Copia Strumenti
È necessario copiare il file nella directory install.ps1 strumenti per script da eseguire dal NuGet. È possibile aggiungere quanto segue al modello nuspec per farlo.
<files>
<file src="install.ps1" target="Tools"/>
</files>
Nota in questo caso ho il file install.ps1 nella radice del mio progetto di Visual Studio e contrassegnato come "Copia se più recente".
fonte
2013-07-24 17:30:18
// non è un commento in powershell, utilizzare # :) altrimenti molto utile, grazie – grahamrhay
@brent: cercando alcuni documenti sui valori accettati per Item ("CopyToOutputDirectory") so che questo è un ence DTE ma non riesco a sembrare trovalo: -/un link al tuo riferimento sarebbe di grande aiuto per me e per chiunque trovi questa risposta. – workabyte