ClickOnce抱怨:“您无法从此位置启动应用程序,因为它已从其他位置安装。”

时间:2011-03-15 01:14:30

标签: clickonce

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

  

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

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

我的应用程序完全卸载以前的版本,然后安装最新版本,我会完全没问题。这些类型的错误不会一直发生在用户从DVD安装一次并且稍后通过下载的ZIP文件获得新版本的情况下吗?

5 个答案:

答案 0 :(得分:6)

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

我知道的唯一解决方法是将应用程序作为在线应用程序发布到Web服务器。 (也可以从文件共享中工作,但我不记得了。)

答案 1 :(得分:0)

如果要同时使用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应用程序(请参见{{3} })

答案 2 :(得分:0)

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

对我有用。

谢谢, 拉克什

答案 3 :(得分:0)

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

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

解决方案是从新的HTTPS位置卸载并重新安装应用程序。我猜想如果您不顾一切,可以重新启用HTTP。

答案 4 :(得分:0)

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