2017-10-19 113 views
1

運行VS 2017,最新更新。自動綁定重定向

documentation指出,啓用自動綁定重定向修改的csproj文件並添加下適當<PropertyGroup>如下:

<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects> 

歷史上我的項目已在App.config幾個綁定重定向項。我最近更新瞭解決方案的所有nuget包,並在提交中修改了幾個綁定重定向條目以匹配新版本。

我想確保一切都很好,所以我刪除了App.Config中的所有條目,認爲它們將在下一個版本中重新生成(正如文檔所暗示的那樣)。

令我驚訝的是沒有任何東西被添加到清潔/構建的app.config。

所以我的問題是,假設通過整合解決方案中的依賴關係,我不再需要它們了嗎?

或者是有什麼錯,VS應該產生重定向和失敗。

+0

如果您還將' true'添加到csproj文件,該怎麼辦? – Evk

+0

@Evk - 試過那個,仍然沒有生成重定向。但是,如果我對nuget軟件包進行了任何更改,重定向的確會生成。 – Wjdavis5

+0

啊,這似乎是一個原因 – Evk

回答

0

這是因爲源app.config未被修改,只有輸出(在編譯步驟中創建並放置在Debug/Release文件夾中)的應用程序配置文件是。

從Visual Studio 2013開始,以.NET Framework 4.5.1爲目標的新桌面應用程序使用自動綁定重定向。這意味着如果兩個組件引用同一強名稱程序集的不同版本,則運行時會自動將綁定重定向添加到輸出應用程序配置(app.config)文件中較新版本的程序集。這種重定向覆蓋了可能發生的程序集統一。源app.config文件未被修改。

Source

重定向在源的app.config通過的NuGet本身產生。您通過更改包來觸發它。