Msbuild 如何在csproj构建输出中包含Nuget包中的XML文档

Msbuild 如何在csproj构建输出中包含Nuget包中的XML文档,msbuild,nuget,nuget-package,csproj,packagereference,Msbuild,Nuget,Nuget Package,Csproj,Packagereference,我有一个包含XML文档文件的nuget包 packages/MyPackage.1.0.0/lib/net472/MyPackage.xml 但是,在构建项目时,我希望在输出中包含此xml文件 所以当我: dotnet MyProj.csproj-c发行版 我想得到: > ls bin/Release/net472 MyProj.dll MyPackage.dll MyPackage.xml 然而,它从未出现过。我怎样才能得到它 我找到了一个解决方案: 请在 将文件从nuget包复制到o

我有一个包含XML文档文件的nuget包

packages/MyPackage.1.0.0/lib/net472/MyPackage.xml

但是,在构建项目时,我希望在输出中包含此xml文件

所以当我:

dotnet MyProj.csproj-c发行版

我想得到:

> ls bin/Release/net472
MyProj.dll
MyPackage.dll
MyPackage.xml
然而,它从未出现过。我怎样才能得到它

我找到了一个解决方案: 请在

将文件从nuget包复制到out dir或publish dir实际上是一个问题

在运行构建或发布后,只需修改csproj文件以从包的路径复制文件。

在此处发布

如果您想从所有包中复制xml,这是一种比Snede更好的方法,因为它一般工作,无需在每个包的路径上指定.net版本



为什么要将依赖包中的XML文档包含在项目的生成输出中?XML文档位于包中,无需创建更多副本。该项目用于引用另一个项目,该项目后来成为nuget包。XML文档用于自动生成API页面。我在这里发布了解决方案,这似乎有效!你能解释一下它是如何工作的吗?:-)@说实话,我不知道,哈哈。我在msbuild中完全是个笨蛋。我只是在这里复制了Vlad的答案,因为我测试了它,它似乎工作得很好。如果您在另一个答案中@him,他可能会添加解释?基本上,这是将所有xml文件从安装的nuget软件包复制到构建目录。安装nuget软件包时,它将存储在“C:\Users\your\u login\u name\.nuget\packages”中