使用"Publish Web"时包含包中的 XML 文件



我有一个依赖于NuGet包的Web API项目。此包包含一个 XML 文件,该文件由我的应用程序在运行时引用。

当我从 Visual Studio 生成解决方案并在调试模式下运行它时,文件被复制到 \bin,并且应用程序运行没有问题。

当我发布应用程序时,文件不会复制到最终输出,并且我可以看到它从未复制到 \obj 文件夹。

我已经将文件引用直接添加到 \packages 文件夹中的包中,但每当更新包版本时,这都会中断。

如何指定部署时应复制文件?

我根据这篇博文想通了。

我在 .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 的回答几乎对我有用。而且由于我是Stackoverflow评论的新手,因此我无法添加评论。为了使它正常工作,我将包含更改为"..\Packages*\lib*.xml"。但这是一个救命稻草,因为我写了很多文档,但无法把它带到我的大摇大摆的实现中。

相关内容

  • 没有找到相关文章

最新更新