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

Max*_*ton 7 deployment clickonce azure continuous-deployment azure-devops

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

我正在使用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
...
Run Code Online (Sandbox Code Playgroud)

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

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

我是一名实习生,一般都是部署新手,我甚至不知道我是否正确地采用这种方式.

问题:

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

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

小智 1

您提到了 ClickOnce,您对此进行了调查但无法使用。您是否已经尝试过另一种选择:松鼠?使用 Squirrel,您可以指定哪些文件应成为安装的一部分,从而允许您显式指定要包含哪些文件,即使动态加载它们也是如此。

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

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