2010-07-30 158 views
0

我已經在Visual Studio 2008中使用VB.NET創建了一個自定義控件,該控件爲搜索和救援應用程序提供了廣泛的映射和跟蹤功能。我遇到的問題是,在許多地方,我需要定義主要應用程序可執行文件的路徑,以便找到控件需要正常運行的許多目錄。一切工作正常,當我在VS使用它,但是當我嘗試嵌入的形式控制在一個單獨的解決方案,我得到以下錯誤:爲自定義控件定義可執行文件的路徑

Failed to create component 'MainControl'. The error message follows: 'System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\Program Files\Microsoft\Visual Studio 9.0\Common\IDE\GIS\Data\Default...

這似乎表明,它正在尋找\ GIS \ Data \ Default目錄在Visual Studio程序路徑中,但我已經使用Application.StartupPath在整個控件中定義了這個位置。

只有當試圖將控件嵌入控件解決方案之外的窗體時纔會出現此錯誤。我爲開發該控件而創建的解決方案有兩個項目(一個用於控制,一個用於測試窗體進行調試)

任何人都可以爲我提供一些指導嗎?

回答

1

當控件在設計器中使用代碼時會發生這種情況。它的確如構造函數,Load事件,Paint事件等等,當你將控件放在Visual Studio中的窗體上時,它會運行。

您需要使用DesignMode屬性來防止此代碼在當前工作目錄出錯時運行並崩潰。這在設計器中是錯誤的,工作目錄是Visual Studio的,而不是最終將被使用的應用程序。或者使用絕對路徑,而不是相對路徑。

如果這沒有幫助,如何調試設計時問題是explained here

+0

感謝漢斯做到了這一點。這很有趣,我在VB.NET中開發了大約三年,這是我第一次遇到這個問題。無論如何,你的解決方案是正確的。 – Gerry 2010-07-31 17:02:25