使用ClickOnce部署时的安装问题

8
我有一个Wpf应用程序,希望能在远程服务器上部署。之前我使用的是VS2010,因此很容易创建设置/ .msi文件并部署到其他机器。
现在我使用的是VS2012。它没有设置部署选项。同时,我也了解了ClickOnce应用程序部署方法以部署我的应用程序。
我试过一种方法,但它不能正确地在本地安装应用程序。应用程序快捷方式第一次启动时(很少有第二次),下一次就会抛出异常,例如:
"Cannot start application". Application cannot be started. Contact  the application vendor

错误详情如下:

ERROR DETAILS
    Following errors were detected during this operation.
    * [29-01-2014 11:32:48] System.Deployment.Application.DeploymentException (Activation)
        - Activation failed.
        - Source: System.Deployment
        - Stack trace:
            at System.Deployment.Application.ComponentStore.ActivateApplication(DefinitionAppId appId, String activationParameter, Boolean useActivationParameter)
            at System.Deployment.Application.SubscriptionStore.ActivateApplication(DefinitionAppId appId, String activationParameter, Boolean useActivationParameter)
            at System.Deployment.Application.ApplicationActivator.Activate(DefinitionAppId appId, AssemblyManifest appManifest, String activationParameter, Boolean useActivationParameter)
            at System.Deployment.Application.ApplicationActivator.ProcessOrFollowShortcut(String shortcutFile, String& errorPageUrl, TempFile& deployFile)
            at System.Deployment.Application.ApplicationActivator.PerformDeploymentActivation(Uri activationUri, Boolean isShortcut, String textualSubId, String deploymentProviderUrlFromExtension, BrowserSettings browserSettings, String& errorPageUrl)
            at System.Deployment.Application.ApplicationActivator.ActivateDeploymentWorker(Object state)
        --- Inner Exception ---
        System.IO.FileNotFoundException
        - The system cannot find the file specified. (Exception from HRESULT: 0x80070002)
        - Source: System.Deployment
        - Stack trace:
            at System.Deployment.Application.NativeMethods.CorLaunchApplication(UInt32 hostType, String applicationFullName, Int32 manifestPathsCount, String[] manifestPaths, Int32 activationDataCount, String[] activationData, PROCESS_INFORMATION processInformation)
            at System.Deployment.Application.ComponentStore.ActivateApplication(DefinitionAppId appId, String activationParameter, Boolean useActivationParameter)

能帮我吗?

1个回答

14

我之前也遇到过这个问题……虽然我不能告诉你是什么原因导致了这个问题,但你会很高兴听到解决方法非常简单。当你收到错误消息 '应用程序无法启动,请联系应用程序供应商。' 时,请按照以下步骤来解决:

enter image description here

删除该应用程序的应用历史记录

ClickOnce应用程序安装在以下路径中:

C:\Users\username\AppData\Local\Apps\2.0。

请注意,默认情况下 Apps 文件夹是隐藏的,因此您需要在Windows资源管理器文件选项对话框中 显示隐藏的文件和文件夹 。在这个文件夹里有一个名为 Data 的文件夹,其中包含用户设置,不应被删除。

此文件夹中的其他文件夹将包含应用程序历史记录,应该 被删除…… 这些文件夹具有类似 'AP3HP63D.KQT' 的随机名称。在删除它们之前,请务必查看其内容。

此文件夹中的内部文件夹名称也具有半随机名称,尽管它们使用的是它们所代表的解决方案文件夹的前几个和最后几个字母…… 例如:Midas.Models:

mida..dels_fd8cb4d036a0621f_0003.0001_none_22d6cc2069472451。

因此,如果您要删除应用程序的版本下载历史记录,请确保内部文件夹是正确的。找到正确的 '外部文件夹'(例如“AP3HP63D.KQT”)后,您可以简单地将其删除并重新下载应用程序的最新版本。


在我的情况下,我不得不在任务管理器中终止应用程序进程以释放文件锁定。谢谢! - PatFromCanada

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接