Help and Support

文章編號: 825007 - 上次校閱: 2007年5月18日 - 版次: 3.4

BUG: 您無法將使用者控制項加入至 Visual Studio.NET 2003 中的 Windows 表單

在此頁中

全部展開 | 全部摺疊

結論

可能會遇到問題,當您嘗試將使用者控制項加入至 Windows Form 時,或當您開啟 Windows Form 具有使用者控制項時。 本文將告訴您,可能會遇到的行為。 同時說明這種行為,以及在如何使用其周圍的原因。

本文包含步驟來重新產生 [行為] 和 [連結至參考包含在 SerializationException
的詳細資訊,類別、 組件、 如何設定資料夾重新導向及漫遊的使用者設定檔以及使用.NET Framework 組態工具設定程式碼群組。

徵狀

在 Microsoft Visual Studio.NET 2003,您可能會無法從 [工具箱] 的使用者控制項加入 Microsoft Windows Form。 此外,當您開啟 Windows Form 包含 T: 使用者控制項,或時您嘗試建立具有包含使用者控制項在 Windows Form 專案時,使用者控制項可能會消失。 當發生這個問題時您可能會收到下列錯誤訊息在 [工作清單] 視窗:
變數的 VariableName 會是未宣告或永遠不會指派。


找不到型別的 NamespaceUserControlName。 請確定已參考包含此型別在組件中。 如果這是您的開發專案的一部分,請確定正確建置。
在 System.Runtime.Serialization.SerializationException 例外狀況錯誤也可能會發生。 例外狀況錯誤訊息會包含下列文字:
不足,無法將物件還原序列化的狀態。 需要更多的資訊。
請注意 這些錯誤訊息的範例會使用下列的預留位置:
  • VariableName 是,使用者控制項變數名稱的預留位置。
  • Namespace 是,命名空間包含使用者控制項類別的名稱預留位置。
  • UserControlName 是預留位置的使用者控制項類別名稱。
而且,在會升級將 Microsoft Visual Basic 6.0 專案,為 Microsoft Visual Basic.NET 2003 之後可能會發現錯誤訊息。 且,這個問題會不會發生在 Microsoft Visual Studio.NET 2002。

發生的原因

Visual Studio.NET 2003 會為專案層級的組件,例如包含使用者控制項之組件的建立暫存檔案。 這些暫存的檔案位於: %APPDATA%\Microsoft\VisualStudio\7.1\ProjectAssemblies 資料夾中。 Visual Studio.NET 2003 然後載入組件從暫存檔案記憶體。 如果您使用資料夾重新導向將您的應用程式] 下的資料式資料夾到非完全信任的例如網路共用的資料夾的資料夾重新導向 Visual Studio.NET 2003 無法載入組件。

通常,如果您使用漫遊使用者設定檔,就會發生,在 < 徵狀 > 一節中所述的問題。

其他可行方案

完全信任的所有檔案都位於 [ProjectAssemblies 資料夾。 要執行這項操作,請依照下列在您的本機電腦上的步驟執行:
  1. 啟動 Microsoft.NET Framework 1.1 組態工具。 在.NET 1.1 的組態開啟視窗。
  2. 在.NET 組態的左窗格中 1.1] 視窗 執行階段安全性原則 ,依序展開 [及 [ 電腦
  3. 程式碼群組 ,依序展開 [及 [ All_Code]
  4. LocalIntranet_Zone 上, 按一下滑鼠右鍵,然後再按一下 [ 新增 ]。 [ 建立程式碼群組 ] 對話方塊隨即出現。
  5. 按一下以選取 [ 建立新的程式碼群組 ] 選項。
  6. 在 [ 名稱 ] 方塊請輸入 MyCodeGroup ,然後再按一下 [下一步]
  7. 在 [ 選擇這個程式碼群組之條件類型 ] 方塊中,按一下 [ URL ]。
  8. 完全信任的所有檔案都位於 [ProjectAssemblies 資料夾,在 URL 中輸入下列文字方塊:
    file://// FolderPath \Microsoft\VisualStudio\7.1\ProjectAssemblies\*
    請注意 FolderPath 是您重新導向應用程式資料,資料夾路徑預留位置資料夾。
  9. 按一下 [下一步]
  10. 使用現有使用權限集合 ] 方塊按一下 [ FullTrust ,然後按一下 [ 下一步 ]。
  11. 按一下 [完成]

狀況說明

確認 Microsoft 已經確實這在 < 適用於 > 一節中所列之 Microsoft 產品中的有錯誤。

其他相關資訊

Visual Studio.NET 2002 直接專案層級組件載入記憶體不使用暫存檔案。 因此,在 Visual Studio.NET 2002 中不會發生在 < 徵狀 > 一節中所述的行為。

重現問題的步驟

請注意 請依照下列步驟執行之後您將應用程式資料資料夾重新導向至不完全受信任的資料夾,。
  1. 啟動 Visual Studio.NET 2003。
  2. 使用 Visual Basic.NET 建立 Windows 控制項程式庫專案。 預設狀況下,會建立 [一個名為 WindowsControlLibrary1 和名為 UserControl1.vb 檔案的專案]。
  3. 建置 Windows 控制項程式庫專案,建立 WindowsControlLibrary1.dll 組件。
  4. 在 [ 工具 ] 功能表中上, 按一下 [ 新增 / 移除工具箱項目 ]。 在 自訂工具箱] ] 對話方塊隨即出現。
  5. 按一下 [.NET Framework 元件 ] 索引標籤。
  6. .NET Framework 元件 索引標籤上,按一下 [ 瀏覽 ]。 [ 開啟 ] 對話方塊隨即出現。
  7. 找出並按一下您在步驟中建立之 WindowsControlLibrary1.dll 組件 3。
  8. 按一下 [ 開啟] ,然後按一下 [ 確定 ]。 UserControl1 使用者控制項會加入至 [工具箱] 中。
  9. 您可以使用 Visual Basic 的.NET 將 Windows 應用程式專案加入至您的解決方案。 預設的情況下,就會建立名為 Form1 Windows Form。
  10. 嘗試 UserControl1 的使用者控制項加入 Form1 Windows Form。 您無法加入使用者控制項。
  11. 開啟專案具有包含使用者控制項例如 Microsoft Visual Basic 6.0 專案,您升級到 Visual Basic.NET 2003 的一個 Windows Form。
  12. 開啟 Windows Form 的 [設計] 檢視。 使用者控制項可能會消失。 而且,在 [工作清單] 視窗可能會發現第一個在 < 徵狀 > 一節中所述的兩個的錯誤訊息。

?考

如需詳細資訊,請造訪下列 Microsoft Developer Network (MSDN) 網站:
SerializationException 類別
http://msdn2.microsoft.com/en-us/library/system.runtime.serialization.serializationexception(vs.71).aspx (http://msdn2.microsoft.com/en-us/library/system.runtime.serialization.serializationexception(vs.71).aspx)

組件
http://msdn2.microsoft.com/en-us/library/hk5f40ct(vs.71).aspx (http://msdn2.microsoft.com/en-us/library/hk5f40ct(vs.71).aspx)

設定資料夾重新導向]
http://technet2.microsoft.com/windowsserver/en/library/CAD7966E-C9B6-495F-B7BB-2A9673F69F4F1033.mspx (http://technet2.microsoft.com/windowsserver/en/library/CAD7966E-C9B6-495F-B7BB-2A9673F69F4F1033.mspx)

漫遊使用者設定檔
http://msdn2.microsoft.com/en-us/library/aa374409.aspx (http://msdn2.microsoft.com/en-us/library/aa374409.aspx)

使用.NET Framework 組態工具的設定程式碼群組
http://msdn2.microsoft.com/en-us/library/eb8xw74a(vs.71).aspx (http://msdn2.microsoft.com/en-us/library/eb8xw74a(vs.71).aspx)

這篇文章中的資訊適用於:
  • Microsoft Visual Studio .NET 2003 Enterprise Architect
  • Microsoft Visual Studio .NET 2003 Enterprise Developer
  • Microsoft Visual Studio .NET 2003 Academic Edition
關鍵字:?
kbmt kbvs2005swept kbvs2005doesnotapply kbdesigner kbpolicy kbmisctools kbsyssettings kbtrusts kbprofiles kbsecurity kbuser kbupgrade kbbug kberrmsg kbwindowsforms KB825007 KbMtzh
機器翻譯機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。如果您發現錯誤,並想要協助我們進行改善,請填寫本篇文章下方的問卷。
按一下這裡查看此文章的英文版本:825007? (http://support.microsoft.com/kb/825007/en-us/ )
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

文章翻譯

 

Related Support Centers