我有一个ClickOnce 4.0应用程序的.NET安装。我收到了这个错误:
您无法从此位置启动应用程序,因为它已从其他位置安装
我通过以下方式获得了它: *我创建我的部署并压缩它。 *转到安装计算机并解压缩并安装。 *创建下一个版本并将其压缩。 *现在在我的安装计算机上,如果我解压缩到其他位置并尝试运行安装程序,我会收到上述错误。
我的应用程序完全卸载以前的版本,然后安装最新版本,我会完全没问题。这些类型的错误不会一直发生在用户从DVD安装一次并且稍后通过下载的ZIP文件获得新版本的情况下吗?
答案 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: 驱动器上的应用程序文件的一个。现在我的应用每次都从桌面图标运行。