2012-12-06 40 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應用程序更多的權限,這些內容需要管理訪問權限。