0

我在 GitHub 上托管了一个开源 WPF 应用程序:https ://github.com/tomhunter-gh/SourceLog

我希望做的是添加 ClickOnce 部署并在 AppHarbor 上托管 ClickOnce 安装,以便在我将新提交推送到 GitHub 时自动升级用户。我正在寻找的是类似于 GitHub Windows 客户端的自动更新功能,我也希望找到一个免费托管 ClickOnce 安装位的地方。

我有几个问题:

  • AppHarbor 是如何工作的?据我所知,它需要一个包含单个 Web 应用程序项目的 Visual Studio 解决方案,然后它会构建并“部署”该项目。它具体要运行什么,它做了什么假设?例如,当您有非 Web 项目,或者您的解决方案不在根目录中时会发生什么?
  • 有没有办法自定义构建和部署过程,例如使用自定义 MSBuild 脚本?
  • 我将如何确保“发布”WPF 项目以便生成 ClickOnce 位?
  • 有没有办法从 AppHarbor 构建过程中获取构建号?例如,四部分程序集版本 1.2.3.4 并将其写入生成的二进制文件/配置?
  • AppHarbor 有没有办法在成功构建后将 ClickOnce 位推送回 GitHub,以便我可以在 GitHub 上托管 ClickOnce 安装?

我应该采取完全不同的方法吗?

4

1 回答 1

0

事实证明这是完全可能的,步骤如下:

应用港

  • 确保您使用的是 Web Worker 进程。
  • 在 AppHarbor 中添加一个应用程序并将其连接到您的 GitHub 项目。

解决方案

  • 将 Web 应用程序项目添加到解决方案
  • 将 v7.0A Windows SDK 文件夹 (C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A) 复制到解决方案旁边的文件夹中

WPF 项目

  • 将Project 元素的DefaultTargets属性设置为Publish
  • PublishDir属性设置为$(OutDir)\_PublishedWebsites\{ClickOnceHostWeb}
  • UpdateUrl属性设置为http://yourapp.apphb.com/
  • 设置以下附加属性:

    <GenerateBootstrapperSdkPath>$(MSBuildProjectDirectory)\..\Lib\Microsoft SDKs\Windows\v7.0A\Bootstrapper</GenerateBootstrapperSdkPath>
    <SdkToolsPath>$(MSBuildProjectDirectory)\..\Lib\Microsoft SDKs\Windows\v7.0A\Bin</SdkToolsPath>
    

更多详细信息可在我的SourceLog 博客文章中找到, GitHub 上的 SourceLog 项目演示了一个完整示例。

于 2012-12-18T15:43:43.660 回答