【问题标题】:Are there any caveats to using ClickOnce in VS 2010 to deploy "real" applications?在 VS 2010 中使用 ClickOnce 部署“真实”应用程序有什么注意事项吗?
【发布时间】:2010-08-16 04:04:38
【问题描述】:

在我看来,ClickOnce 总是一种在 Intranet 环境中部署 .NET 应用程序的便捷方式。我正在考虑将其用作桌面应用程序的部署方法,该应用程序通过 Internet 分发给普通用户。 (替代方法是常规安装包。)

有人有这方面的经验吗?它运作良好吗?对于开发人员或最终用户,是否存在我应该注意的问题?

【问题讨论】:

    标签: clickonce windows-installer


    【解决方案1】:

    我曾多次使用 ClickOnce 在 Web 上进行部署,体验各不相同。我要给出的建议是:

    • 确保应用程序具有一个静态交付项
    • 避免在服务器端动态构建部署和应用程序清单,尤其是在可插拔架构方面(即使用mage.exe 根据身份和/或权限构建清单)
    • 从应用程序控制身份验证,ClickOnce 在促进从安全网站下载应用程序方面具有令人难以置信的限制。请参阅here,了解您将面临的选择。
    • 避免提供先决条件,或将其保持在最低限度。例如,仅 .NET 框架、SQL express。
    • 应用程序不应需要客户端的显着权限(例如,HKLM 注册表更改)。该应用程序最终将从登录用户的文档文件夹中运行,您将无法在用户下载时判断该用户是否为管理员。
    • 使用经过验证的 Authenticode 证书对 ClickOnce 清单进行签名
    • 关于更新交付物,如果交付物是静态的并且已就地更新,ClickOnce 可以很好地处理此问题。您有两个部署选项,“安装并运行”选项和“仅运行”选项。两者在部署方面完全相同,它们将文件复制到同一个地方,权限相同。唯一的区别是安装版本将在开始菜单中创建一个条目并添加/删除程序。更新基于名称和版本。对于已安装的版本,更新不是强制性的,但仅运行选项也将获得最新的交付物。如果交付物没有改变并且用户已经下载了应用程序,它将不会再次下载,而是从保存目录启动。

    这项技术很酷,但之前有几个警告让我很不爽。

    【讨论】:

    • 有价值的信息。谢谢!我的应用程序需要很多权限(例如必须在本地读写文件,甚至连接到 USB 设备)。这对我来说会是个大问题吗?我知道它可以在安装时要求提升权限。
    • 本身没有安装程序,这是大问题之一。您必须在本地包含所有依赖程序集,例如,您不能将程序集安装到 GAC。我相信您可以在可执行文件旁边包含一个用于请求提升的清单。如果用户是管理员用户,你不会有任何问题。
    • 我唯一的先决条件是 .NET 4,所以我应该没问题。我将不得不假设用户是管理员,因为应用程序所做的事情的类型将需要它。谢谢!
    • 确保您以完全信任的方式部署应用程序,并且用户可能会做您需要他们做的事情,除非它类似于擦除 C 盘。然后,您可能需要提升权限并首先询问他们。 ;-)
    • fletcher -- 您在“更新”对话框中将最低版本设置为您正在部署的相同版本。当用户运行应用程序时,它会自动安装更新而不询问他是否需要。我喜欢那个。 :-)
    猜你喜欢
    • 1970-01-01
    • 2011-02-16
    • 1970-01-01
    • 1970-01-01
    • 2014-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多