c# - 使用单击一次部署时的安装问题

标签 c# wpf visual-studio-2012

我有一个 Wpf 应用程序,我希望它在远程服务器上部署。以前我用的是 VS2010,所以创建 setup/.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)

帮我解决这个问题?

最佳答案

我以前遇到过这个问题......我不能告诉你是什么原因造成的,但你会很高兴听到这个解决方案相当轻松。当您收到一条错误消息,指出“应用程序无法启动时。联系应用程序供应商。',请执行以下操作来修复它:

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”)后,您只需将其删除并重新下载最新版本的应用程序即可。

关于c# - 使用单击一次部署时的安装问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21423386/

相关文章:

c# - 添加数据后如何滚动到 ListView 的末尾 - WPF

visual-studio - 如何解决 "Install-Package : The current environment doesn' t 打开解决方案。”

visual-studio-2012 - Visual Studio安装停止工作

c# - 如何在html表格中将水平行更改为垂直列数据显示

c# - 在 Linq 查询中不同

c# - 使用应用程序其他类的 "FindResource"

c++ - 在 Visual Studio 中使用自制库

c# - 绑定(bind)中继器中的所有数据

c# - 指定的 LocalDB 实例不存在

c# - 如何在 Prism 框架中的模块之间正确发送事件消息?