終了するには、この問題の最後を解決する方法についてもう少し詳細です:あなたは、ステータスを確認するために2つのことを行う必要がある
インストール正しくに設定されている...
- install.ps1スクリプトを記述して、ファイルのステータスをマークします。
- install.ps1スクリプトが、nugetパッケージのToolsディレクトリにあることを確認します。
Install.ps1スクリプト
次のスクリプト例では、再帰的に「新しいへコピー」として「コンテンツ」と「ビュー」ディレクトリ内のすべてのファイルをマークします。このサンプルスクリプトは、読んで理解するために書かれています。 Visual StudioプロジェクトのルートディレクトリにあるContentフォルダとViewsフォルダ内のすべてのファイルをマークします。
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"))
ツール
コピー先あなたはnugetによって実行されるスクリプトのToolsディレクトリにinstall.ps1ファイルをコピーする必要があります。これを行うには、以下をnuspecテンプレートに追加することができます。
<files>
<file src="install.ps1" target="Tools"/>
</files>
この場合、私はVisual Studioプロジェクトのルートにinstall.ps1ファイルがあり、「新しい場合はコピーする」とマークされています。
//私はPowerShellのコメントではありません。#:)それ以外の場合は非常に便利です、ありがとう – grahamrhay
@brent:Item( "CopyToOutputDirectory")の受け入れられた値に関するドキュメントを探しています。これはDTE列挙型ですが、それを見つけてください: - あなたのリファレンスへのリンクは、私とこの答えを見つけた人に大きな助けになります。 – workabyte