c# - MSBuild 未生成发布网页 (ClickOnce)

标签 c# .net msbuild clickonce publish

我遇到一个问题,当我通过 MSBuild (4.0) 发布我的 ClickOnce 应用程序时,publish.htm(或 default.htm)没有在 app.publish 文件夹中创建。

当通过 Visual Studio 发布时,它被装箱...

在我的 .csproj 文件中,我设置了以下属性,但它仍然无法正常工作...

<CreateWebPageOnPublish>true</CreateWebPageOnPublish>
<WebPage>default.htm</WebPage>

有什么想法吗?

谢谢

最佳答案

我找到了一个很好的解决方案here .您可以使用内部带有 {VERSION} 占位符的 publish.htm 模板。 MSBuild Community Tasks是 FileUpdate 任务所必需的。

BUILD_VERSION - 环境变量,由我的构建脚本设置。 PublishDir 属性在 msbuild 的参数中设置。

  <!-- .... -->

  <Target Name="DoPublish">
    <MSBuild Projects="$(ProjectFileName)" Targets="Publish" Properties="ApplicationVersion=$(BUILD_VERSION)" />
    <!-- Write publish.htm file for ClickOnce -->
    <Copy SourceFiles="$(ProjectDir)\publish.htm" DestinationFiles="$(PublishDir)\publish.htm"/>
    <FileUpdate Files="$(PublishDir)\publish.htm"
                IgnoreCase="true"
                Multiline="true" 
                Singleline="false"
                Regex="{VERSION}" 
                ReplacementText="$(BUILD_VERSION)"/>
  </Target>

</Project>

关于c# - MSBuild 未生成发布网页 (ClickOnce),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19011427/

相关文章:

c# - 从 LINQpad 转移到合适的 Visual Studio 项目?

c# - 如何处理.NET 中已发布的公共(public)库?

c# - Response.Redirect() 重定向到子文件夹中的页面

c# - 无法从用法中推断出方法的类型参数

c# - 将新的 Dispatcher 绑定(bind)到 WPF 中的线程

c# - ASP.net c# - 无法加载类型

c# - SignalR 或 Redis pubsub 用于 Azure 上的缩放发布者和缩放订阅者

c# - 编译器不应允许 Guid == null

azure-devops - 在 Azure Pipeline .NET Core CLI 任务中从 csproj 检索项目版本

msbuild - Biztalk 2009 和 2010 .btproj 项目中的增量构建支持吗?