【问题标题】:ClickOnce application publishing fails when an end-user is in progress of installing required .NET runtime当最终用户正在安装所需的 .NET 运行时时,ClickOnce 应用程序发布失败
【发布时间】:2014-12-17 21:30:42
【问题描述】:

尝试发布,我反复收到此错误:

Unable to add 'setup.exe' to the Web site. The file 'setup.exe' already exists in this Web site.

我正在运行 VS2013,发布“仅在线可用”应用程序,因为过去我遇到过奇怪的问题,即更新导致用户在使用“离线”选项。

这很好用。但是,我正在使用 .NET 4.5.2 创建这个项目,这意味着我的所有最终用户都必须更新。这也很好,因为我将运行时包含在我的项目的 Application Files 中。

在进行一些测试运行时,我偶然发现了一个巨大的问题/烦恼:当用户运行已发布文件夹中的 setup.exe 时,.NET 更新的安装程序运行,但在此更新期间,我无法发布为文件显然正在使用中。这在过去 VS2010 中不是问题。

有什么解决方法吗?想象一下,当我尝试发布更新时,有人将 .NET 安装程序长时间停留在屏幕上。问题挺大的。

附言此答案不适用,因为它不是实际的权限问题: Clickonce publish - "The file 'default.htm' already exists in this Web site"

【问题讨论】:

    标签: visual-studio-2013 clickonce publish


    【解决方案1】:

    首先,我认为这个“问题”即使在 VS2010 中也一直存在,只是以前从未发生过。

    现在的解决方法:

    1. 在发布更新之前禁用网站/Web 应用程序。
    2. 始终先发布到中间文件夹,然后再发布到 PROD。

    【讨论】:

    • 我可能遗漏了一些东西,但发布到中间文件夹不会解决问题吗?这将允许我发布,是的,但在我最终能够发布或复制到官方文件夹之前,没有人会得到实际的更新。 setup.exe 和 Application.application 文件之间有区别吗?我不应该让他们使用 .exe 吗?
    • @Keith setup.exe 是一个引导程序,可以帮助您安装先决条件,然后执行 .application,它将保证目标环境已准备好执行您的应用程序。如果您没有任何先决条件,那么要求您的用户仅运行 .application 应该是安全的,但是如果您决定包含先决条件会发生什么?
    • 嗯,没错。我想我需要做的是避免它被“使用”还要求我的用户单独安装 .NET 4.5.2。 Infragistics dll 等其他先决条件又如何呢?运行 .application 会安装这些吗?
    • 没关系,我懒得这么问。我可以在别人的机器上运行一些测试。
    【解决方案2】:

    如果您只想解除违规者的锁定,请右键单击桌面上的我的电脑,右键单击树中的计算机管理并选择“连接到另一台计算机”。输入安装文件所在服务器的名称。展开共享文件夹 => 打开文件。找到安装文件上的锁,右键单击它并选择关闭打开文件。

    【讨论】:

    • 这是一个有效的解决方法,在紧急情况下使用了多次,但它没有解决根本问题。
    猜你喜欢
    • 2010-11-30
    • 1970-01-01
    • 1970-01-01
    • 2023-04-05
    • 2012-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多