2017-10-19 114 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本身产生。您通过更改包来触发它。