2014-04-30 80 views
0

我有一個應用程序AppFoo,它利用MyDLL.dll文件中的用戶控件。當我從Visual Studio運行AppFoo時,一切正常。如果我從Visual Studio創建的調試文件夾複製AppFoo.exe和MyDLL.dll,並將它們粘貼到其他位置(即我的桌面),則可以啓動AppFoo.exe而不會出現問題。但是,如果我使用Visual Studio發佈實用程序並將AppFoo發佈到某個位置(我的桌面再次),則無法使用AppFoo。 .exe將正確啓動,但是當我嘗試使用應用程序進行操作時,它會崩潰並給我一個空引用異常消息。發佈應用程序時出現空引用異常

這是很奇怪的,我認爲試圖運行「發表了」應用程序,這使我相信,有一些與發佈過程,是我的錯誤的來源怎麼回事時,纔會出現此錯誤。

注意,用戶控件加載罰款,所以似乎沒有要與訪問MYDLL.DLL的問題。

如果您知道什麼可能導致此問題,或有任何疑難解答的想法,他們將不勝感激。

回答

1

自應用程序加載後,您可以將調試器附加到其進程。 See here。這將允許您查看發生異常的位置,與從VS運行該程序的方式相同。

這些類型的錯誤也是爲什麼你想在你的程序中有某種異常記錄器。

+0

喬恩,感謝您的提示。我試過調用JIT調試器,但這是一種我不熟悉的技術。也許我做錯了,但我遵循了你提供的鏈接中的指示。我附加到VS2013中的過程,但是當AppFoo()中引發異常時,VS不會執行任何操作。 AppFoo()只是崩潰,並給我錯誤報告。有關這方面的進一步建議? – BenB

+0

@ user3565566確保你已將VS設置爲異常。如果事實證明這比它的價值更麻煩,那麼添加一個頂級異常處理程序並將異常記錄到一個文件中(使用它的'ToString()')。這會給你一個有用的堆棧跟蹤。 –

+0

此外,請確保您已經在Debug(不是Release)模式下構建了您的應用程序,並嘗試將.pdb文件放在您執行的相同文件夾中。 –

相關問題