疑難排解 .NET Framework 目標錯誤

Visual Studio 讓您能夠散發輕量的 .NET Framework 執行階段 (又稱為 .NET Framework 4 Client Profile)。這個執行階段僅包含 .NET Framework 4 中部分的二進位檔。藉著使用 .NET Framework 4 Client Profile,您可以將較小的 .NET Framework 程式庫散發給您應用程式的使用者,而使用者的系統上就算沒有安裝完整的 .NET Framework 4,也還是可以執行此應用程式。

當您的應用程式以特定的設定檔為目標時,如果您嘗試參考不是該設定檔一部分的組件,可能會發生錯誤。 常見的錯誤包含下列各項:

  • 命名空間 "namespace" 中沒有型別或命名空間名稱 "name"。 (您是否遺漏了組件參考?)

  • 型別 "typename" 未定義。

  • 無法載入解析組件 "assembly"。 組件未列為 "profile" 設定檔的一部分。

這些錯誤可能是起因於不同的動作。 本主題包括可能導致錯誤的原因描述,以及如何解決問題。

如需 .NET Framework 4 Client Profile 的詳細資訊,請參閱 .NET Framework Client ProfileHOW TO:以特定的 .NET Framework 版本或設定檔為目標

您參考了不包括在用戶端設定檔中的組件

如果您的應用程式嘗試參考未包含在 .NET Framework 4 Client Profile 中之組件或相依組件所包含的功能,可能會發生執行階段錯誤訊息 確實的訊息依參考的功能所在位置而不同。若要排除這樣的錯誤,您可以由專案中移除不正確的組件參考,或設定讓專案以完整的 .NET Framework 4 版為目標,而不要以 .NET Framework 4 Client Profile 子集程式庫為目標。

您參考了以不同 .NET Framework 版本為目標的專案或組件

您建立的應用程式,可以參考以不同 .NET Framework 版本為目標的專案或組件。 例如,如果您建立目標為 .NET Framework 4 Client Profile 的應用程式,則該專案可以參考目標為 .NET Framework 2.0 版的組件。 然而,如果您建立之專案的目標是舊版 .NET Framework,則無法在該專案中設定目標為 .NET Framework 4 Client Profile 或 .NET Framework 4 之專案或組件的參考。 為了避免錯誤,請確定您應用程式的目標設定檔與您應用程式所參考之專案或組件的目標設定檔相容。

您將專案的目標重新設定為不同版本的 .NET Framework

如果您變更應用程式的 .NET Framework 目標版本,則 Visual Studio 會變更某些參考。 然而,您同時必須進行某些手動更新。 例如,如果您建立一個資源或設定依賴於 .NET Framework 4 Client Profile 的應用程式,然後將應用程式的目標變更為 .NET Framework 3.5 SP1,則您可能會看到前面提及的其中一個錯誤。

做為應用程式設定的解決方法,在 [方案總管] 中按一下 [顯示所有檔案],然後編輯 Visual Studio [XML 編輯器] 中的 app.config 檔案。 變更設定中的版本以與 .NET Framework 的版本相符。 例如,您可以將版本設定從 4.0.0.0 變更為 2.0.0.0。 同樣地,針對已加入資源的應用程式,在 [方案總管] 中按一下 [顯示所有檔案]、展開 [我的專案] (Visual Basic) 或 [屬性] (C#),然後編輯 Visual Studio [XML 編輯器] 中的 Resources.resx 檔案。 將版本設定從 4.0.0.0 變更為 2.0.0.0。

如果您的應用程式具有圖示或點陣圖之類的資源或者具有資料連接字串之類的設定,則您也可以藉由移除 [專案設計工具] 中 [設定] 頁面上的所有項目然後重新加入必要的設定,來補救問題。 如需詳細資訊,請參閱專案設計工具、設定頁

您將專案的目標重定為不同版本的 .NET Framework 後無法解析參考

在某些情況下,將專案的目標重定為不同版本的 .NET Framework 後,可能會無法正確解析參考。這個問題的常見原因是明確使用了組件的完整參考。 您可以移除無法解析的參考,再將參考重新加入專案,即可修正這個問題。 或者,您也可以編輯專案檔,移除下列形式的參考:

<Reference Include="System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL" />

再取代為下列簡單形式:

<Reference Include="System.ServiceModel" />
注意事項注意事項

在您關閉並重新開啟專案之後,也應該重建它,以確定所有參考都已正確解析。

請參閱

工作

HOW TO:以特定的 .NET Framework 版本或設定檔為目標

概念

.NET Framework Client Profile

其他資源

以特定的 .NET Framework 版本或設定檔為目標