如何解决MSBuild 未发布 ClickOnce
我通过 ClickOnce 发布的 C# projectA 依赖于 projectB。我需要 projectB.dll.config 文件才能让 projectA 工作。虽然 MSBuild 将 projectB.dll.config 正确复制到 projectA/bin/ConfigXY
,但它并未发布。 VisualStudio (2017) 甚至不会在 Application->Publish->Application Files 中显示该文件。
作为一种解决方法,我将其添加到 A.csproj:
<Content Include="..\projectB\bin\Release\projectB.dll.config">
<Link>projectB.dll.config</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
现在 VS 会在“应用程序文件”列表中显示该文件,但这当然仅适用于发布构建配置。由于我在项目 A 中有很多配置映射到 B 中的不同配置,我不能简单地在路径中使用 $(Configuration)
。
我发现了一些包含 ..\**\*.dll.config
的建议,但这似乎很危险,因为当 Debug 和 Release 文件夹都存在时(来自之前的构建),我可能会得到错误的结果。
这样做的正确方法是什么?
解决方法
我想将此作为评论发布,但由于限制,我将其发布为答案,对此我深表歉意。
我做了一些测试,似乎要包含要发布的 project.dll.config
文件(显示在应用程序 > 发布 > 应用程序文件中),我们需要将此文件包含到项目 A 中。
我猜你的意思是你想使用“..\XXX\XXX\Release\projectB.dll.config”路径进行发布构建并使用“..\XXX\XXX\Debug\projectB.dll.config”不使用 $(Configuration)
的调试构建路径对吗?
一般情况下,MSBuild 使用 $(configuration)
来切换配置模式,如果您不可用,据我所知,从 MSBuild 方面来说,切换/匹配配置模式是困难的或不可能的。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。