【问题标题】:Visual Studio 2017 C#: How to create an Installer that can provide continuous updatesVisual Studio 2017 C#:如何创建可以提供持续更新的安装程序
【发布时间】:2026-01-21 02:05:01
【问题描述】:

几周以来,我一直在努力寻找答案。希望你能帮助我! :)

我有一个 C# 应用程序。它有多个classes 和多个Forms。表格上还有PictureBoxes 中的图片。

这些图像都存储在bin 文件夹内的Assets 文件夹中,即/bin/Assets

在开发时,我以Debug 模式运行应用程序。

我查看了 YouTube 和互联网的所有领域,以了解如何为我的应用程序创建安装程序。我看到大部分关于ClickOnce 部署的帖子,看起来这就是我想要的。问题是ClickOnce 向导询问您在哪里安装应用程序:

  • 我没有托管应用程序的服务器(我尝试过我见过的示例,例如 \localhost\myfolder\myApplication我有,但是,通过NameCheap 主机,我可以在其中提供指向应用程序的链接供用户下载。不过我不太确定如何设置。

  • 我不希望用户从 CD 安装

  • 文件共享方法我不知道怎么做

这是第一个障碍。无论我选择什么,我都无法让设置正常工作。我认为最大的问题是我找不到如何在项目中包含我的Assets,而且我不知道在哪里安装应用程序。


下一个障碍是,当用户下载我的应用程序时,我希望能够推出更新,并让他们自动获得更新(或只需要重新启动应用程序即可获得更新)。我希望他们每次有更新时都必须重新下载该应用程序,因为每周会有几次更新。

再次,我相信 ClickOnce 可以处理这个问题,但由于我什至无法进入这一步,我不确定。


所以,最后,这是用例:

用户可以从网站下载应用程序。下载应用程序后,应用程序的所有进一步更新都会自动推送或只需要重新启动应用程序即可获得。

我也已经阅读了有关 ClickOnce 的所有文档。特别是this 链接。我的问题是#4。

希望你能帮忙,谢谢!

【问题讨论】:

    标签: c# deployment visual-studio-2017 clickonce continuous-delivery


    【解决方案1】:

    共享安装程序应该不是问题,您只需通过 Dropbox 即可。

    您也可以在 Dropbox 上托管您的更新程序,但只要您有新的更新程序替换旧的更新程序,因此 Web 链接保持不变,这是因为您需要提前知道更新程序链接才能将其放入原始安装程序.

    您提到您通过 NameCheap 有一个网站,我相信您可以使用它来代替 Dropbox,这里有一个 youtube 链接可能会有所帮助。

    https://www.youtube.com/watch?v=PEXcWln2Fe8

    https://www.youtube.com/watch?v=rUNQphoGVwQ

    我个人不使用 ClickOnce,但我使用 Microsoft Windows Installer 并开发自己的更新程序。 ClickOnce 目前对您来说更容易使用,但以后您可以探索其他方式。

    如果不只是让我知道,希望我的答案是明确的, 祝你好运

    【讨论】:

    • 您能否阐明“您可以将更新程序托管在...上”的意思?更新程序是什么意思?我的理解是 ClickOnce 会自行将更新推送到所有应用程序。这不正确吗?
    • 是的,您是对的,ClickOnce 会自行将更新推送到所有应用程序。您的更新程序只是 ClickOnce 的较新版本,因此假设您有与客户共享的第一个 ClickOnce 文件,一周后您对应用程序进行了一些更改并创建了一个新的 ClickOnce 文件,较新的 ClickOnce 文件将具有不同的版本号,并将被视为客户计算机上旧版本的更新程序。只需确保您提前知道将在哪里托管这些新版本的 ClickOnce。
    最近更新 更多