我想创建一个包含一些内容文件的 NuGet 包,我希望将这些文件添加到项目中但不被项目引用,因此它们不会被编译。我该怎么办?
谢谢
编辑您的 nuspec 文件,将对您的文件的引用放入如下:
<?xml version="1.0"?>
<package>
<metadata>
...
</metadata>
<files>
...
<file src="MyFirstContentFile.txt" target="content" />
<file src="MySecondContentFile.cs" target="content" />
...
</files>
</package>
target="content"位是将文件复制到项目中的神奇之处。
现在,如果您要导入项目的文件是代码文件(例如 .cs 文件),并且您不希望它们被编译,则需要设置这些文件的构建操作。为此,您需要对 install.ps1 文件做一些工作(如果您还没有文件,请创建一个,并且不要忘记在您的文件部分中使用 target="tools" 引用该文件):
param($installPath, $toolsPath, $package, $project)
$file1 = $project.ProjectItems.Item("MyFirstContentFile.txt")
$file2 = $project.ProjectItems.Item("MySecondContentFile.cs")
# set 'BuildAction' to 'Content'
$copyToOutput1 = $file1.Properties.Item("BuildAction")
$copyToOutput1.Value = 2
$copyToOutput2 = $file2.Properties.Item("BuildAction")
$copyToOutput2.Value = 2
有关 BuildAction 枚举的可能值,请参阅以下链接。 http://msdn.microsoft.com/en-us/library/aa983962(VS.71).aspx