【发布时间】:2017-06-19 13:31:43
【问题描述】:
我开始在我的解决方案中使用 Nuget 在某些项目中安装 Owin 和其他一些依赖项。我在这里阅读有关 Nuget 和 app.config 文件的信息
Why NuGet adds app.config with assemblyBinding to LIBRARY projects during a NuGet package update?
这里
https://msdn.microsoft.com/en-us/library/7wd6ex19.aspx
现在我知道为什么要使用它们了,绑定特定版本等等...
我遇到的问题是,我有一个包含 32 个项目的大解决方案。
如果我在项目 C 中安装 Owin。一个 app.config 文件会出现在项目 A、B、D、F 中,其中包含以下信息。
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Microsoft.Owin"
publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
为什么我会得到这个?这些项目没有使用 OWIN。有没有办法避免这种情况?或者也许不使用 nuget 手动安装?
谢谢。
P.S:我使用的是 VS2015 企业版
编辑:
我们拥有的架构如下。我已经安装了 Owin 的项目 WebApi。该项目由项目连接器引用。该项目连接器和所有引用它的项目都有以前的 app.config 文件。那是对的吗?如果他们不使用 OWIN 为什么有必要?
EDIT2:
我使用 VS2015 中的 nuget 包管理器从我的解决方案中卸载了所有 nuget 包,这些具有该依赖关系的文件仍然存在。
【问题讨论】:
-
项目 A、B、D、F 是否以某种方式依赖于 C?我尝试了自己的解决方案,只修改了所选项目中的 packages.config 文件。
-
@RokX 不直接。所有这些项目都引用另一个项目。但它们不是直接引用的。
-
看起来 VS2015 找到了一些依赖项并将它们添加到其他项目中。如果您在不需要的项目中手动删除
怎么办 - 它会生成吗? -
是的,它构建了我的项目。问题是,之后当您使用 Nuget 安装另一个软件包时,它会重新生成所有这些无用的文件。因此,下一个安装某些东西的开发人员将再次面临这个问题。很烦人