我通过clickonce部署了一个简单的Winforms应用程序。
在我的开发机器上它可以工作。
在其他机器上,它安装正常,但从startmenu启动时崩溃。
从C:\ Users \ xxxxx \ AppData \ Local \ Apps \ 2.0 ...
开始是没问题的当clickonce在... [Application Directory] \ Data中查找.mdb时,会发生崩溃错误。但是,.mdb文件部署在应用程序目录中。
有什么建议吗?
答案 0 :(得分:0)
您是否尝试过使用procmon来查看您的应用程序尝试访问的内容?它可能会显示您可能错过的应用程序的进一步依赖性。
此外,如果有问题的DLL是COM,您已为应用程序和程序集创建了必要的清单。
HTH
由于
答案 1 :(得分:0)
围绕调用第三方dll进行异常处理并发布您获得的确切错误。如果单击ClickOnce文件夹中的exe时它可以正常工作,但是当您将其作为ClickOnce应用程序运行时,它可能会出现问题,即您运行的东西需要比ClickOnce应用程序更多的权限,这需要管理员访问权限。
答案 2 :(得分:0)
导致问题的原因:
.mdb文件包含在项目中,其中包含“Build Action = Content”和“Copy to Output Directory = Always Always”。
在应用程序设置中,.mdb文件的“发布状态”设置为“包含”。
这会将.mdb文件与应用程序文件一起部署。但是,clickonce应用程序期望.mdb文件部署在clickonce \ Data文件夹中。
<强>解决方案:强>
在“应用程序文件”中,.mdb的“发布状态”设置为“数据文件”。这会将文件解压缩到clickonce \ Data文件夹。
更新了通过Paths与.mdb文件的所有交互,以便在部署应用程序时使用clickonce数据路径。
if (ApplicationDeployment.IsNetworkDeployed)
{
this.applicationDataPath = Path.Combine(Path.GetDirectoryName(Application.UserAppDataPath), "Data");
}