这里是如何解决这个问题的端到端的更详细一点:
你需要做两件事情,以确保正确设置上安装状态...
- 编写install.ps1脚本以标记文件的状态。
- 确保install.ps1脚本位于nuget包的Tools目录中。
Install.ps1脚本
下面的示例脚本将递归标志着“内容”的所有文件和“查看”目录“复制到新的”。注意这个示例脚本是为了清楚阅读和理解而编写的。它将标记Visual Studio项目根目录下的“内容”和“视图”文件夹中的每个文件。
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并标记为“复制,如果新”。
//不是在powershell中的评论,使用#:)否则非常有用,谢谢 – grahamrhay
@brent:寻找一些文档接受的项目(“CopyToOutputDirectory”)我知道这是一个DTE枚举,但似乎不能找到它: - /你的参考链接对我和任何找到答案的人都会有很大的帮助。 – workabyte