如何对旧版本的库运行.NET Core应用程序

Subbaraoc

我有一个使用.netstandard框架构建的库,并说该库的版本是1.1.2。现在我有一个使用该库(版本:1.1.2)构建的.NET Core应用程序。

如果我将库版本升级到1.1.3,而无需重新编译,是否可以针对1.1.3运行相同的.NET Core应用程序?

在.NET Framework中,我们可以在App.Config文件中设置bindingRedirect,并且使用库版本1.1.2构建的.NET Framework应用程序也可以在版本1.1.3 / 1.1.1的库上运行而无需重新编译。 .NET Core也有类似的东西?

伊恩·坎普

如果我将库版本升级到1.1.3,而无需重新编译,是否可以针对1.1.3运行相同的.NET Core应用程序?

是的-只需将依赖关系替换为更新的版本,它就可以正常工作(当然,假设更新的依赖关系并未从版本1.1.2更改其公共API)。

.NET Core的行为与Framework不同,因为它的运行时(CoreCLR)试图通过查找构建应用程序所基于的版本相同或更高的版本来解决依赖关系

.NET Framework的CLR查找针对应用程序生成的依赖项特定版本-前向兼容性是必须添加绑定重定向机制的原因之一。

Core的(可能更具逻辑性)方法意味着它根本不支持绑定重定向的概念-因为它不需要重定向。

在.NET Framework中,我们可以在App.Config文件中设置bindingRedirect,并且使用库版本1.1.2构建的.NET Framework应用程序也可以在版本1.1.3 / 1.1.1的库上运行而无需重新编译。 .NET Core也有类似的东西?

否-如上所述,Core不支持绑定重定向,并且依赖项解析算法仅考虑相同或更新的版本。

我找不到任何文档说明为什么不对较早版本提供内置支持,但我怀疑这与这种情况不太可能发生,并且最终支持它最终导致.NET应该避免的DLL类型的地狱。

.NET Core提供了AssemblyLoadContext该类,您可以对其进行扩展以提供自己的程序集加载算法实现,以处理您的特定情况。例如,您可以编写一个AssemblyLoadContextapp.config文件中使用绑定重定向规则的,以加载您的依赖项(是否应该做这样的事情是另一回事)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在ASP.NET Core应用程序(RC2)中使用net451库

来自分类Dev

在ASP.NET MVC Core应用程序(RC2)中显示项目版本

来自分类Dev

如何使用.Net Core 1.0开发Android应用程序?

来自分类Dev

如何创建.NET Core库我可以从.NET Core应用程序(Web API)引用

来自分类Dev

如何检测我的Asp.Net Core应用程序正在运行的操作系统?

来自分类Dev

从.NET Core应用程序引用.NET 4.6.2类库

来自分类Dev

如何对ASP.NET Core Web应用程序(.Net Framework)进行单元测试?

来自分类Dev

将带有类库的.Net Core MVC应用程序部署到Ubuntu 16.04:

来自分类Dev

如何从Linux上运行的.NET Core应用程序对Windows域用户进行身份验证

来自分类Dev

从另一个.NET Core应用程序运行.NET Core dll

来自分类Dev

如何从提供程序(C#.NET Core控制台应用程序)获取Args?

来自分类Dev

用.net core 3.0编写的应用程序可以引用.net core 2.2中开发的类库吗?

来自分类Dev

如何在.net Core 3.1应用程序中注入Log4net日志记录

来自分类Dev

NET Framework 4.7.2应用程序可以在运行时加载NET Core 5.0库DLL吗?

来自分类Dev

识别正在使用我刚替换的库的旧版本的正在运行的程序

来自分类Dev

在类库项目中引用ASP.NET Core应用程序

来自分类Dev

如何使用.Net Core 1.0开发Android应用程序?

来自分类Dev

如何获得旧版本的.NET Standard?

来自分类Dev

如何为.NET Core应用程序(.NET Framework)添加WCF服务参考

来自分类Dev

ASP.NET Core应用程序如何构建?

来自分类Dev

在 Asp.Net Core 2.0 中运行 Asp.Net 4.6.1 应用程序

来自分类Dev

如何为自包含的跨平台 .NET Core 应用程序指定目标运行时?

来自分类Dev

从引用 .NET Standard 库的 .NET Core 应用程序中的 app.config 读取

来自分类Dev

如何使用 VSTS 部署(和运行).NET Core ASP.NET 应用程序?

来自分类Dev

ASP.NET Core 应用程序突然需要新的特定版本而无需更改

来自分类Dev

如何获取独立部署 (SCD) 应用程序的 .NET Core 运行时版本?

来自分类Dev

如何在批处理文件中运行 .net core 应用程序

来自分类Dev

没有数据库提供程序 .Net Core Angular 应用程序

来自分类Dev

如何在 .Net Core 控制台应用程序中引用 .Net Core 库

Related 相关文章

  1. 1

    在ASP.NET Core应用程序(RC2)中使用net451库

  2. 2

    在ASP.NET MVC Core应用程序(RC2)中显示项目版本

  3. 3

    如何使用.Net Core 1.0开发Android应用程序?

  4. 4

    如何创建.NET Core库我可以从.NET Core应用程序(Web API)引用

  5. 5

    如何检测我的Asp.Net Core应用程序正在运行的操作系统?

  6. 6

    从.NET Core应用程序引用.NET 4.6.2类库

  7. 7

    如何对ASP.NET Core Web应用程序(.Net Framework)进行单元测试?

  8. 8

    将带有类库的.Net Core MVC应用程序部署到Ubuntu 16.04:

  9. 9

    如何从Linux上运行的.NET Core应用程序对Windows域用户进行身份验证

  10. 10

    从另一个.NET Core应用程序运行.NET Core dll

  11. 11

    如何从提供程序(C#.NET Core控制台应用程序)获取Args?

  12. 12

    用.net core 3.0编写的应用程序可以引用.net core 2.2中开发的类库吗?

  13. 13

    如何在.net Core 3.1应用程序中注入Log4net日志记录

  14. 14

    NET Framework 4.7.2应用程序可以在运行时加载NET Core 5.0库DLL吗?

  15. 15

    识别正在使用我刚替换的库的旧版本的正在运行的程序

  16. 16

    在类库项目中引用ASP.NET Core应用程序

  17. 17

    如何使用.Net Core 1.0开发Android应用程序?

  18. 18

    如何获得旧版本的.NET Standard?

  19. 19

    如何为.NET Core应用程序(.NET Framework)添加WCF服务参考

  20. 20

    ASP.NET Core应用程序如何构建?

  21. 21

    在 Asp.Net Core 2.0 中运行 Asp.Net 4.6.1 应用程序

  22. 22

    如何为自包含的跨平台 .NET Core 应用程序指定目标运行时?

  23. 23

    从引用 .NET Standard 库的 .NET Core 应用程序中的 app.config 读取

  24. 24

    如何使用 VSTS 部署(和运行).NET Core ASP.NET 应用程序?

  25. 25

    ASP.NET Core 应用程序突然需要新的特定版本而无需更改

  26. 26

    如何获取独立部署 (SCD) 应用程序的 .NET Core 运行时版本?

  27. 27

    如何在批处理文件中运行 .net core 应用程序

  28. 28

    没有数据库提供程序 .Net Core Angular 应用程序

  29. 29

    如何在 .Net Core 控制台应用程序中引用 .Net Core 库

热门标签

归档