【问题标题】:ClickOnce complains: "You cannot start application from this location because it is already installed from a different location."ClickOnce 抱怨:“您无法从该位置启动应用程序,因为它已从其他位置安装。”
【发布时间】:2021-05-06 16:19:22
【问题描述】:

我有一个ClickOnce 安装的.NET 4.0 应用程序。我收到了这个错误:

您无法从该位置启动应用程序,因为它已从其他位置安装

我通过执行以下操作得到它: * 我创建我的部署并压缩它。 * 转到安装计算机并解压缩并安装。 * 创建下一个版本并将其压缩。 * 现在在我的安装计算机上,如果我解压缩到其他位置并尝试运行安装程序,我会收到上述错误。

让我的应用程序完全卸载以前的版本,然后安装最新版本,我会非常满意。当用户从 DVD 安装一次然后通过下载的 ZIP 文件获取新版本时,这些类型的错误不会一直发生吗?

【问题讨论】:

  • 我认为你应该阅读下一个question的答案

标签: clickonce


【解决方案1】:

部署 URL 是应用程序标识的一部分。如果在启动时从一个位置安装它,则需要从同一位置安装更新。即使您没有在清单中指定部署提供程序(如 Johnny 引用的文章中所述),它也会执行此操作——它只是将其设置为您首次安装它的位置。

据我所知,解决此问题的唯一方法是将应用程序作为仅在线应用程序发布到网络服务器。 (可能也可以通过文件共享工作,但我不记得了。)

【讨论】:

  • 当我设置ExcludeDeploymentUrl=true 时会发生什么?这就是“不在清单中指定部署提供程序”的意思吗?我想知道设置ExcludeDeploymentUrl=true 是否有任何灵活性优势。
【解决方案2】:

如果您想同时使用 ClickOnce 安装同一应用程序的不同版本,例如 Dev 版本和 QA 版本,请使用唯一的证书对每个版本进行签名:

makecert -r -pe -n "CN=MyApp Q1" -sv MyApp-Q1.pvk MyApp-Q1.cer -b 06/01/2016 -e 12/31/2099

然后在 powershell 中获取您将使用的指纹:

Get-PfxCertificate -FilePath .\MyApp-Q1.pfx

然后在您的应用程序 csproj 文件中包含以下内容:

<ProductName>MyApp - Q1</ProductName>
<InstallUrl>\\my\installation\link</InstallUrl>
<ManifestCertificateThumbprint>9D4BF3492523A7D45A835542F7E1CB27ED53573B</ManifestCertificateThumbprint>
<ManifestKeyFile>../Certificates/MyApp-Q1.pfx</ManifestKeyFile>

或者,如果您更喜欢基于 UI 的解决方案,您可以转到 Visual Studio 中的项目属性,然后单击“签名”选项卡以在其中添加证书。有关详细信息,请参阅 MSDN 如何:签署应用程序和部署清单(请参阅 https://docs.microsoft.com/en-us/visualstudio/ide/how-to-sign-application-and-deployment-manifests?view=vs-2017)或演练:手动部署 ClickOnce 应用程序(请参阅 https://docs.microsoft.com/en-us/visualstudio/deployment/walkthrough-manually-deploying-a-clickonce-application?view=vs-2017

【讨论】:

    【解决方案3】:

    如果您遇到此应用程序已安装的问题,那么您可以转到控制面板并卸载现有应用程序,然后您可以安装/发布您的应用程序。

    它对我有用。

    谢谢, 拉克什

    【讨论】:

      【解决方案4】:

      根据@RobinDotNet 的回答,我们的位置无意中在网络服务器上发生了变化。

      我收到此错误是因为我们更改了用于部署应用程序的 Web 服务器上的一些设置。具体来说,我们强制所有流量通过 HTTPS。该应用程序最初是从 HTTP 安装的(但无法再访问该应用程序并被重定向到 HTTPS)。

      解决方案是从新的 HTTPS 位置卸载并重新安装应用程序。我想如果你很绝望,你可以重新启用 HTTP。

      【讨论】:

        【解决方案5】:

        这是我解决此问题的方法。当我双击我的应用程序桌面上的快捷方式图标时,我会收到上述错误消息,尽管它在我第一次双击该图标时运行,但之后没有。我发现了链接到存储在我的 OneDrive 上而不是我的 c: 驱动器上的应用程序文件副本的快捷方式。我删除了快捷方式 到 OneDrive 并将其替换为链接到我的 c: 驱动器上的应用程序文件的一个。现在我的应用每次都从桌面图标运行。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-07-16
          • 2020-03-12
          • 1970-01-01
          • 1970-01-01
          • 2019-07-07
          • 2016-11-06
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多