1

我想创建一个包含一些内容文件的 NuGet 包,我希望将这些文件添加到项目中但不被项目引用,因此它们不会被编译。我该怎么办?

谢谢

4

1 回答 1

1

编辑您的 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

于 2014-01-28T13:28:35.113 回答