備註
本文專屬於 .NET Framework。 此規定不適用於較新的 .NET 實作,包括 .NET 6 及更新版本。
當你在 Visual Studio 編譯針對 .NET Framework 4.5.1 及更新版本的桌面應用程式時,可能會自動在應用程式設定檔中加入綁定重定向,以覆蓋組合語言的統一。 如果你的應用程式或其元件參考相同組件的多個版本,即使你在設定檔中手動指定綁定重定向,綁定重定向仍會被加入。 自動綁定重定向功能影響針對 .NET Framework 4.5.1 或更新版本的桌面應用程式。 如果你沒有明確啟用或停用自動產生的綁定重定向,且你升級了現有專案,這個功能會自動啟用。
對於網頁應用程式來說,當 Visual Studio 遇到綁定衝突時,它 會提示你新增綁定重定向 來解決衝突。
你可以為針對早期版本 .NET Framework(4.5 及更早)的現有應用程式 啟用 自動綁定重定向。 如果你想手動撰寫綁定重定向,可以 關閉 這個功能。
這很重要
從 Visual Studio 2022 開始,Visual Studio 不再包含 .NET Framework 4.0 - 4.5.1 的 .NET Framework 元件,因為這些版本不再受到支援。 Visual Studio 2022 和更新版本無法透過 .NET Framework 4.5.1 建置以 .NET Framework 4.0 為目標的應用程式。 若要繼續建置這些應用程式,您可以使用 Visual Studio 2019 或舊版。
在桌面應用程式中關閉自動綁定重定向
針對 .NET Framework 4.5.1 及更新版本的 Windows 桌面應用程式預設啟用自動綁定導向。 綁定重定向會在應用程式編譯時加入輸出配置(app.config)檔案。 這些重定向會覆蓋原本可能發生的組裝統一。 原始檔案 app.config 不會被修改。 你可以透過修改應用程式的專案檔案,或在 Visual Studio 中取消選取專案屬性中的勾選框來停用此功能。
在專案屬性中停用
如果你有 Visual Studio 2017 15.7 或更新版本,可以在專案的屬性頁面中停用自動產生的綁定重定向。
以滑鼠右鍵按一下 [方案總管] 中的專案,然後選取 [屬性]。
在 應用程式 頁面,取消勾選 自動產生綁定重定向 選項。
如果你看不到這個選項,就需要在專案檔案 中手動停用 這個功能。
按 Ctrl+S 來儲存變更。
在專案檔案中手動停用
請使用以下其中一種方法開啟專案檔案進行編輯:
- 在 Visual Studio 裡,在 解決方案總管中選擇專案,然後從快捷鍵選單中選擇檔案 總管中的「開啟資料夾 」。 在檔案總管裡,找到專案(.csproj 或 .vbproj)檔案,然後用記事本打開。
- 在 Visual Studio 的 解決方案總管中,右鍵點擊專案並選擇 「卸載專案」。 再次右鍵點擊已卸載的專案,然後選擇編輯 [projectname.csproj]。
在專案檔案中,可以找到以下屬性條目:
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>將
true變更為false:<AutoGenerateBindingRedirects>false</AutoGenerateBindingRedirects>
手動啟用自動綁定重定向
你可以在針對舊版 .NET Framework 的現有應用程式中啟用自動綁定重定向,或在沒有自動提示新增重定向的情況下。 如果你目標是較新的 .NET Framework,但沒有自動被提示新增重定向,你很可能會看到建議你重新映射組件的建置輸出。
請使用以下其中一種方法開啟專案檔案進行編輯:
- 在 Visual Studio 裡,在 解決方案總管中選擇專案,然後從快捷鍵選單中選擇檔案 總管中的「開啟資料夾 」。 在檔案總管裡,找到專案(.csproj 或 .vbproj)檔案,然後用記事本打開。
- 在 Visual Studio 的 解決方案總管中,右鍵點擊專案並選擇 「卸載專案」。 再次右鍵點擊已卸載的專案,然後選擇編輯 [projectname.csproj]。
在第一個配置屬性群組(標籤下
<PropertyGroup>)加入以下元素:<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>以下展示一個插入元素的專案範例檔案:
<?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> <ProjectGuid>{123334}</ProjectGuid> ... <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects> </PropertyGroup> ... </Project>編譯你的應用程式。
啟用網頁應用程式中的自動綁定重定向
自動綁定重定向在網頁應用程式中實作方式不同。 由於必須修改原始設定檔(web.config),因此綁定重定向不會自動加入設定檔。 不過,Visual Studio 會通知您有繫結衝突,您可以新增繫結重定向來解決這些衝突。 因為你總是會被提示加入綁定重定向,所以你不需要明確地為網頁應用程式停用這個功能。
要新增綁定重定向到 web.config 檔案:
在 Visual Studio 裡編譯應用程式,檢查是否有建置警告。
若存在組裝約束衝突,則會顯示警告。 雙擊警告,或選擇警告並按 Enter 鍵。
會出現一個對話框,讓你能自動將必要的綁定重定向加到原始 web.config 檔案。