如何将文件包含在NuGet包中,然后在安装NuGet包时将该文件添加到项目中?
我有一个包含2个文件的项目:如何将文件包含在NuGet包中,然后在安装NuGet包时将该文件添加到项目中?,nuget,Nuget,我有一个包含2个文件的项目: ThisProject.config.example ThisProject.xsd 此项目打包为Nuget包,然后将其添加到其他项目中。当这种情况发生时,我希望这些文件复制到项目中。然后,用户将ThisProject.config.example复制到ThisProject.config并编辑该文件 我知道在.nuspec文件中有两种包含文件的方法。这些是: <files> <file src="ThisProject.config.exam
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软件包的项目中
我还没有尝试过,但根据link,有三个脚本可以合并到NuGet包中:
标签。但根据post(NuGet博客)的说法,只有在将包添加到某些项目类型时,它才起作用。并且不适用于package.config
文件
从NuGet包向项目添加文件的预期方式是什么 我发现,如果将文件放在某些文件夹结构中,它们会隐式地添加到包中,也会添加到项目根目录中。但是,我仍然没有找到将文件作为项目本身中的项添加的方法。这是.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文档提到定义文件和内容文件很有用。我认为要求是nuget包有一个文件夹
content
,其中的文件实际上被传输到项目目录中。有时会将文件引用添加到.sln文件中,有时则不会。不知道为什么,或者我是否做了一些不同的事情导致了不同的结果。