我有一个包含2个文件的项目:
此项目打包为Nuget包,然后将其添加到其他项目中。当发生这种情况时,我希望将这些文件复制到项目中。然后,用户将ThisProject.config.example
复制到ThisProject.config
并编辑该文件。
据我所知,在.nuspec
文件中有两种方法可以包含文件。这些是:
<files>
<file src="ThisProject.config.example" target="ThisProject.config.example" />
<file src="ThisProject.xsd" target="ThisProject.xsd"/>
</files>
这样做,我看到当我将软件包安装到已复制文件的/packages
文件夹中时。这很好。但是,我似乎需要使用.ps
脚本将它们添加到安装nuget包的项目中?
我还没有尝试过,但根据THIS链接,有三个脚本可以合并到NuGet包中:
但是从VS 2017开始,第2和第3名已经过时了?为解释提供的链接指向有关MSBuild的信息。但据我所知,目前还没有关于flatfile类型的明确信息。
然后。据说有一个<contentFiles>
标签。但根据THIS帖子(NuGet博客),只有在将包添加到某些项目类型时才有效。并且不适用于package.config
个文件......
从NuGet包添加文件到项目的预期方法是什么?
答案 0 :(得分:0)
我发现如果您将文件放在某些文件夹结构中,它们会隐式添加到包中,并且还会添加到项目根目录中。但是我还没有找到一种方法将文件添加为项目本身的项目。这是.nuspec文件的一个示例。
<?xml version="1.0"?>
<package >
<metadata>
...
<tags>some tags</tags>
<contentFiles>
<files include="**/*.*" buildAction="None" copyToOutput="true" flatten="true" />
</contentFiles>
</metadata>
<files>
<file src="contentFiles\any\any\config\name.example" target="content\name.example" />
<file src="contentFiles\any\any\config\name.xsd" target="content\name.xsd"/>
</files>
</package>
MS文档提到定义文件和contentFiles很有用。我认为要求是nuget包有一个文件夹content
,其中文件被传输到项目目录