13

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

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

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

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

有任何想法吗?

谢谢

4

2 回答 2

3

我在这里找到了一个很好的解决方案。您可以使用带有{VERSION}占位符的 publish.htm 模板。FileUpdate 任务需要MSBuild 社区任务。

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>
于 2014-11-06T23:23:13.863 回答
2

我使用的是 Visual Studio 2015,但在其他方面听起来是相同或相似的问题。解决方案是在 Visual Studio 中打开项目文件的属性 > 转到“发布”设置,然后在右窗格中单击Options...。这将打开“发布选项”对话框。选择“部署”,如果您看到“部署网页”为空(我的是),则输入“publish.htm”。然后,您应该能够检查“每次发布后自动生成部署网页”(您需要检查此项)。单击OK以关闭对话框,然后重新发布。您的“publish.htm”文件现在应该出现了。

于 2017-05-22T11:44:40.127 回答