我有一个内部NuGet包,其中包含单个dll,没有外部NuGet包依赖,也没有web.config转换。
但是,当我在我的项目(类库和网站)中的此特定NuGet上运行Update-Package时,它会自动将我的网站web.config程序集绑定重定向更新为旧版的System.Web.Mvc和Newtonsoft.Json。 网站web.config当前将它们绑定到正在使用的最新版本。
使用GUI,利用“解决方案的管理NuGet包”...我选择更新适用于具有对旧版本的引用的项目的此NuGet。然后选择更新
这是Package Manager的输出:http://pastebin.com/3ySwTRFR 我的web.config从这里开始:
我正在更新的NuGet包含一个引用了Newtonsoft.Json的dll(但未明确作为NuGet包依赖项)。
当不知情的开发人员更新此NuGet包时,它会破坏运行时,寻找旧版本的MVC或JSON.NET dll。
过去我曾尝试使用-IgnoreDependencies powershell命令开关,但这似乎对问题没有影响。
有任何想法可以在update-package期间转换我的web.configs(没有显式的转换)吗?
编辑:VS2015 w/ NuGet 3.3.0似乎表现更好了...在随机包更新期间,它找到了一个旧的BAD绑定重定向并进行了纠正!
但是,当我在我的项目(类库和网站)中的此特定NuGet上运行Update-Package时,它会自动将我的网站web.config程序集绑定重定向更新为旧版的System.Web.Mvc和Newtonsoft.Json。 网站web.config当前将它们绑定到正在使用的最新版本。
使用GUI,利用“解决方案的管理NuGet包”...我选择更新适用于具有对旧版本的引用的项目的此NuGet。然后选择更新
这是Package Manager的输出:http://pastebin.com/3ySwTRFR 我的web.config从这里开始:
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="0.0.0.0-5.1.0.0" newVersion="5.1.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
收件人:
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="0.0.0.0-4.0.0.1" newVersion="4.0.0.1" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.5.0.0" newVersion="4.5.0.0" />
</dependentAssembly>
我正在更新的NuGet包含一个引用了Newtonsoft.Json的dll(但未明确作为NuGet包依赖项)。
当不知情的开发人员更新此NuGet包时,它会破坏运行时,寻找旧版本的MVC或JSON.NET dll。
过去我曾尝试使用-IgnoreDependencies powershell命令开关,但这似乎对问题没有影响。
有任何想法可以在update-package期间转换我的web.configs(没有显式的转换)吗?
编辑:VS2015 w/ NuGet 3.3.0似乎表现更好了...在随机包更新期间,它找到了一个旧的BAD绑定重定向并进行了纠正!
Microsoft.IdentityModel.Tokens
)。所有我的项目都引用了5.6.0
但它仍然添加了对5.5.0
的绑定重定向。真是气人。 - Dai