【问题标题】:Nuget creates app.config files in multiple projectsNuget 在多个项目中创建 app.config 文件
【发布时间】: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 安装另一个软件包时,它会重新生成所有这些无用的文件。因此,下一个安装某些东西的开发人员将再次面临这个问题。很烦人

标签: c# nuget owin


【解决方案1】:

我建议相信 NuGet 并保留它所做的 app.config 更改(khellang explained why), 但如果实在烦你,可以skip applying binding redirects

【讨论】:

  • 谢谢!我知道这是一个老问题。但我会将其标记为答案,因为我们做了您在链接中发布的关于跳过绑定重定向的内容
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-26
  • 2013-12-16
  • 2013-03-30
  • 1970-01-01
相关资源
最近更新 更多