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

注意: 您無法將使用者控制項加入 Windows Form Visual Studio.NET 2003年中

在此頁中

全部展開 | 全部摺疊

結論

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

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

徵狀

在 Microsoft Visual Studio.NET 2003年,您可能會無法將從 [工具箱] 內,將使用者控制項新增到 Microsoft Windows Form。 此外,當您開啟 Windows Form 包含使用者控制項,或使用者控制項在建置 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. 在 [ 使用現有使用權限集合 ] 方塊按一下 [ 完全信任 ,再按 下一步 ]。
  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 表單。 您無法新增使用者控制項。
  11. 開啟一個具有 Windows Form 包含諸如 Microsoft Visual Basic 6.0 中的專案,您升級到 Visual Basic.NET 2003年的使用者控制項的專案。
  12. 開啟 [Windows 表單的設計檢視。 使用者控制項可能會消失。 而且,在 [工作清單] 視窗中可能會發現第一個 < 徵狀 > 一節所述的兩個的錯誤訊息。

?考

如需詳細資訊,請造訪下列 Microsoft 開發人員網路 (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