如何将文件包含在NuGet包中,然后在安装NuGet包时将该文件添加到项目中?

如何将文件包含在NuGet包中,然后在安装NuGet包时将该文件添加到项目中?,nuget,Nuget,我有一个包含2个文件的项目: ThisProject.config.example ThisProject.xsd 此项目打包为Nuget包,然后将其添加到其他项目中。当这种情况发生时,我希望这些文件复制到项目中。然后,用户将ThisProject.config.example复制到ThisProject.config并编辑该文件 我知道在.nuspec文件中有两种包含文件的方法。这些是: <files> <file src="ThisProject.config.exam

我有一个包含2个文件的项目:

  • ThisProject.config.example
  • ThisProject.xsd
  • 此项目打包为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软件包的项目中

    我还没有尝试过,但根据link,有三个脚本可以合并到NuGet包中:

  • Init.ps1
  • 安装.ps1
  • 卸载.ps1
  • 但从2017年起,第2号和第3号已经过时了?为解释提供的链接指向有关MSBuild的信息。但就我所见,没有关于平面文件类型的明确信息

    那么。应该有一个
    标签。但根据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文件中,有时则不会。不知道为什么,或者我是否做了一些不同的事情导致了不同的结果。