0

我有一个通过 clickonce 部署的简单 Winforms 应用程序。

在我的开发机器上它可以工作。

在其他机器上安装正常,但从开始菜单启动时崩溃。

从 C:\Users\xxxxx\AppData\Local\Apps\2.0 开始是没问题的...

当 clickonce 在 ...[Application Directory]\Data 中查找 .mdb 时发生崩溃错误。但是,.mdb 文件部署在应用程序目录中。

有什么建议么?

4

3 回答 3

0

您是否尝试过使用 procmon 查看您的应用程序试图访问的内容?它可能会显示您可能遗漏的应用程序的进一步依赖关系。

此外,如果有问题的 dll 是 COM,您是否为应用程序和程序集创建了必要的清单。

高温高压

谢谢

于 2012-12-07T13:58:21.177 回答
0

围绕调用 3rd 方 dll 进行异常处理并发布您遇到的确切错误。如果它在您单击 ClickOnce 文件夹中的 exe 时有效,但在您作为 ClickOnce 应用程序运行时无效,则可能的问题是您正在运行的东西需要比 ClickOnce 应用程序更多的权限,即需要管理访问权限的东西。

于 2012-12-10T16:43:45.747 回答
0

是什么导致了问题:

.mdb 文件包含在“构建操作 = 内容”和“复制到输出目录 = 始终复制”的项目中。

在应用程序设置中,.mdb 文件的发布状态设置为“包含”。

这使用应用程序文件部署了 .mdb 文件。但是,clickonce 应用程序希望 .mdb 文件部署在 clickonce \Data 文件夹中。

解决方案:

在“应用程序文件”中,.mdb 的“发布状态”设置为数据文件。这会将文件分解到 clickonce \Data 文件夹。

通过路径与 .mdb 文件的所有交互都已更新,以便在部署应用程序时使用 clickonce 数据路径。

    if (ApplicationDeployment.IsNetworkDeployed)
    {
        this.applicationDataPath = Path.Combine(Path.GetDirectoryName(Application.UserAppDataPath), "Data");
    }
于 2012-12-12T14:36:45.853 回答