使用 NuGet contentFiles 将文件复制到构建输出目录

Mar*_*ryl 5 csproj visual-studio nuget nuget-package

我需要我的 NuGet 包将文件添加到项目并设置其“复制到输出目录”标志。

\n\n

到目前为止,我正在使用脚本,如@workabyte to Set content files to \xe2\x80\x9ccopy local :always\xe2\x80\x9d in a nuget package 的答案install.ps1所示。

\n\n

但我知道 NuGet 3.3 及更高版本使用其contentFiles模型提供本机支持本机支持。

\n\n

我的理解是我创建一个目录结构,例如:

\n\n
contentFiles\\\n  any\\\n    any\\\n      image.png\n
Run Code Online (Sandbox Code Playgroud)\n\n

然后在我的.nuspec

\n\n
contentFiles\\\n  any\\\n    any\\\n      image.png\n
Run Code Online (Sandbox Code Playgroud)\n\n

编译包时,image.png会将其目录结构添加到.nupkg.

\n\n

但是,当我在 Visual Studio (2017) 中安装该包时,它image.png甚至没有添加到项目中。

\n\n

我究竟做错了什么?

\n

Mar*_*ich 5

仅当使用引用 NuGet 包的“样式”contentFiles时才支持该功能。PackageReference它不适用于使用的项目packages.config(并不是说在撰写本文时除了卸载所有包、更改类型并再次安装所有包之外没有迁移路径)。

请参阅 NuGet 的博客文章“NuGet 现在已完全集成到 MSBuild 中”,特别是“非 .NET Core 的其他项目类型怎么样?”部分。有关如何设置引用 NuGet 包的首选方式的说明。