NuGet排除内容项目引用

时间:2013-06-24 04:58:36

标签: visual-studio nuget

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

由于

1 个答案:

答案 0 :(得分: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