使用.Net标准库.csproj时,如何将nuget contentFiles CopyToOutput值设置为true?

Chr*_*ggs 7 csproj nuget asp.net-core

我一直在寻找任何方法来将我包含的内容文件的CopyToOutput属性设置为true,这是从.Net标准库项目在VS2017中内置的nuget包中获得的。

使用Content节点添加文件时,我可以看到包中的文件,但是当查看在本地缓存时被拉出的nuspec时,没有CopyToOutput,因此默认情况下为false。在这种情况下,当它在asp.net核心站点中被引用时,不会将任何内容复制到应用程序中。如果我手动更新该缓存版本以包括该属性并将其设置为true并还原,则所有内容都会被复制。

不幸的是,我调查了Nuget.Build.Tasks.Pack.dll,看来没有办法通过MSBuild属性传递该值。

我希望有人遇到了这个问题并且可以解决。

小智 6

参见https://github.com/NuGet/NuGet.Client/pull/1450 打包sdk csproj时,允许在内容项上指定copyToOutput并展平为Metadata

你需要设置PackageCopyToOutput源的csproj的内容为true。

<Content Include="...">
    <PackageCopyToOutput>true</PackageCopyToOutput>
</Content>
Run Code Online (Sandbox Code Playgroud)

并且一旦构建了程序包,它将为该内容包含CopyToOutput =“ true”。

  • 很有帮助!但我想知道有没有办法将特定文件复制到使用项目的构建文件夹中? (3认同)