MSBuild不生成发布网页(ClickOnce) [英] MSBuild is not generating publish web page (ClickOnce)

查看:254
本文介绍了MSBuild不生成发布网页(ClickOnce)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

通过Visual Studio发布时,它会被创建...

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

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

有什么想法吗?

谢谢

解决方案

我找到了一个很好的解决方案 MSBuild社区任务.

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

  <!-- .... -->

  <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>

I am facing a problem that when I publish my ClickOnce application through MSBuild (4.0), the publish.htm (or default.htm) isn't created in the app.publish folder.

When publishing through Visual Studio, it gets crated...

In my .csproj file I have the following properties set, and it still not working...

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

Any ideas?

Thanks

解决方案

I found a good solution here. You can use a template for publish.htm with {VERSION} placeholder inside. MSBuild Community Tasks are required for the FileUpdate task.

BUILD_VERSION - environment variable, set by my build script. PublishDir property is set in argument for 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>

这篇关于MSBuild不生成发布网页(ClickOnce)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆