使用 "Publish Web" 时包含包中的 XML 文件
Include XML file from package when using "Publish Web"
我有一个依赖于 NuGet 包的 Web API 项目。此包包含一个 XML 文件,我的应用程序在 运行 时间引用了该文件。
当我从 Visual studio 构建解决方案并在调试模式下 运行 时,文件被复制到 \bin,并且应用程序 运行s 没有问题。
当我发布应用程序时,文件没有被复制到最终输出,我可以看到它从未被复制到 \obj 文件夹。
我已经考虑过将文件引用直接添加到 \packages 文件夹中的包中,但是只要更新包版本,这就会中断。
如何指定在部署时复制文件?
我是根据this blogpost算出来的。
我在 .csproj 文件的末尾添加了以下内容:
<PropertyGroup>
<CopyAllFilesToSingleFolderForPackageDependsOn>
CustomCollectFiles;
$(CopyAllFilesToSingleFolderForPackageDependsOn);
</CopyAllFilesToSingleFolderForPackageDependsOn>
</PropertyGroup>
<Target Name="CustomCollectFiles">
<Message Text="=== CustomCollectFiles ===" Importance="high" />
<ItemGroup>
<_CustomFiles Include="..\Packages\**\*PackageName.*.xml*" />
<FilesForPackagingFromProject Include="%(_CustomFiles.Identity)">
<DestinationRelativePath>bin\%(Filename)%(Extension)</DestinationRelativePath>
</FilesForPackagingFromProject>
</ItemGroup>
</Target>
Petter Brodins 的回答几乎对我有用。而且由于我是 Whosebug 评论的新手,所以我无法添加评论。为了让它工作,我将 Include 更改为“..\Packages*\lib*.xml”。但这是一个救命稻草,因为我写了很多文档,但无法将其用于我的 swagger 实现。
我有一个依赖于 NuGet 包的 Web API 项目。此包包含一个 XML 文件,我的应用程序在 运行 时间引用了该文件。
当我从 Visual studio 构建解决方案并在调试模式下 运行 时,文件被复制到 \bin,并且应用程序 运行s 没有问题。
当我发布应用程序时,文件没有被复制到最终输出,我可以看到它从未被复制到 \obj 文件夹。
我已经考虑过将文件引用直接添加到 \packages 文件夹中的包中,但是只要更新包版本,这就会中断。
如何指定在部署时复制文件?
我是根据this blogpost算出来的。
我在 .csproj 文件的末尾添加了以下内容:
<PropertyGroup>
<CopyAllFilesToSingleFolderForPackageDependsOn>
CustomCollectFiles;
$(CopyAllFilesToSingleFolderForPackageDependsOn);
</CopyAllFilesToSingleFolderForPackageDependsOn>
</PropertyGroup>
<Target Name="CustomCollectFiles">
<Message Text="=== CustomCollectFiles ===" Importance="high" />
<ItemGroup>
<_CustomFiles Include="..\Packages\**\*PackageName.*.xml*" />
<FilesForPackagingFromProject Include="%(_CustomFiles.Identity)">
<DestinationRelativePath>bin\%(Filename)%(Extension)</DestinationRelativePath>
</FilesForPackagingFromProject>
</ItemGroup>
</Target>
Petter Brodins 的回答几乎对我有用。而且由于我是 Whosebug 评论的新手,所以我无法添加评论。为了让它工作,我将 Include 更改为“..\Packages*\lib*.xml”。但这是一个救命稻草,因为我写了很多文档,但无法将其用于我的 swagger 实现。