设置WPF桌面应用程序的持续部署

时间:2015-01-19 18:35:11

标签: azure deployment clickonce azure-devops continuous-deployment

对于我目前正在处理的项目,我需要为现有的桌面应用程序创建一个安装应用程序。安装应用程序将从网站下载,并将所需文件下载到正确的位置。当应用程序启动时,它将查找这些文件的较新版本,如果存在则下载它们,然后启动应用程序。

我正在使用Visual Studio Online和TFVC,链接到Azure。我设置了一个测试应用程序,这样当我触发构建时,Release Management会找到构建目录,并将文件移动到Azure Blob存储,但会为正在传输的文件名添加GUID。所以我在存储容器中的内容是:

{Some GUID}/2390/Test.exe
{Some GUID}/2389/Test.exe
{Some GUID}/2387/Test.exe
...

我在容器中想要的是最新版本的Test.exe,因此我可以连接到容器,并确定是否要下载。

我已经整理了一个NullSoft安装程序,用于检查网站和下载文件。我还写了一篇NullSoft"发射器"这将比较本地文件版本与网站上的版本(使用网站上的版本xml文件),如果更新则下载,然后启动应用程序。我需要弄清楚的是如何在构建之后将更新的文件放到网站上,自动化是目标之一。

我是一名实习生,一般都是部署新手,而且我甚至都不知道我是否会以正确的方式解决这个问题。

问题:

  • 我正在做的事情对我想要完成的事情有意义吗?
  • 我们正在尝试模拟ClickOnce功能,但由于应用程序动态加载了大量DLL,因此无法使用ClickOnce。有没有办法配置ClickOnce以包含未引用的DLL?
  • 是否有做我所描述的最佳做法?

我感谢任何建议,参考链接或现实世界的例子。

1 个答案:

答案 0 :(得分:1)

您提到ClickOnce,您调查但无法使用。你有没有尝试过另一种选择:松鼠?使用Squirrel,您可以指定哪些文件应该是安装的一部分,允许您明确指定要包含哪些文件,即使您动态加载它们。

链接:https://github.com/Squirrel/Squirrel.Windows

Squirrel是一个用于创建自动更新应用程序的完整框架,可以使用Azure Blob存储托管(如果需要扩展,还可以使用CDN)