2012-12-06 34 views
0

我有一个简单的Winforms应用程序通过clickonce部署。Clickonce winforms应用程序不会从startmenu开始

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

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

的是它开始形成C中没有问题:\用户\ XXXXX \应用程序数据\本地\应用\ 2.0 ...

当崩溃错误时的ClickOnce查找一个.MDB在发生... [应用程序目录] \ Data。但是.mdb文件部署在应用程序目录中。

有什么建议吗?

+0

你可以发布它如何崩溃?另外,从每台机器的每次安装启动菜单启动时,它是否会崩溃? – stuartd

+0

我已更新问题以适应您的问题....“问题疑问...” – Fubzot

+0

您是否从第三方DLL获取任何类型的错误消息? – stuartd

回答

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"); 
    } 
0

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

此外,如果有问题的DLL是COM你有创建应用程序和程序集的必要清单。

HTH

感谢

0

放在异常处理周围调用第三方的DLL和发布你所得到的确切的错误。如果它在ClickOnce文件夹中单击exe文件时起作用,但在您将它作为ClickOnce应用程序运行时不起作用,则可能的问题是您正在运行的某些内容需要比ClickOnce应用程序更多的权限,这些内容需要管理访问权限。