【发布时间】:2016-03-31 13:58:43
【问题描述】:
根据 MSDN:
当您针对特定版本构建 .NET Framework 应用程序时 对于强名称程序集,应用程序使用该版本的 在运行时组装。
https://msdn.microsoft.com/en-us/library/7wd6ex19(v=VS.100).aspx
问题
有没有办法针对强名称程序集构建 .Net Framework 应用程序,以便它在运行时不需要特定版本? 来自 MSDN 的引用似乎暗示(“针对特定版本的强名称程序集”)
但是如何做到这一点。如何针对强命名程序集的非特定版本进行构建? 我所做的所有测试都告诉我,如果我针对强命名程序集进行构建,它将在运行时始终需要该版本。 除非我使用发布者策略或程序集重定向。
更新:
但是当我检查例如这个 nuget 包时:
https://www.nuget.org/packages/Microsoft.Owin.Security.OAuth.
它说它接受大于 6.0.4 的 Newtonsoft.Json。 我想了解他们是如何做到的?因为 Newtonsoft.Json 是一个强命名的程序集。而且我没有看到任何程序集重定向,我认为也没有发布者政策。还是我错过了什么?
【问题讨论】:
-
如果发布者策略或程序集重定向可以解决您的问题,您为什么要避免它们?
-
Strong-named表示includes version number。你不能。 -
好的,谢谢。也许我最初的问题并不完全正确;)。我想了解其他人是如何做到的。也许我只是想念一些东西。刚刚更新了我的原始问题。
标签: c# .net .net-assembly assembly-resolution