gpt4 book ai didi

c# - exe和assembly可以运行在不同版本的.NET framework上吗?

转载 作者:太空狗 更新时间:2023-10-30 01:04:32 24 4
gpt4 key购买 nike

这可能是一个愚蠢的问题,但这里...我有一个使用另一个 .NET 程序集的 .NET exe。如果 exe 以 .NET 4.0 为目标,程序集以 .NET 3.5 为目标,那么当我运行 exe 时,程序集是否真的在 .NET 4.0 框架上运行?我怀疑是的。那么我的问题是,是否可以让 exe 在 4.0 框架上运行,但使用在 3.5 框架上运行的程序集?

最佳答案

不,那是不可能的。 .NET 4.0 中的基本类发生了变化,例如 System.String。您的 .NET 3.5 程序集会说它依赖于 mscorlib v2.0.0.0。但是 CLR 会重新映射它,它实际上会得到程序集的 4.0.0.0 版本。所以这个过程中的每个程序集都会同意字符串对象的样子。当然非常重要:)

.NET 4.0 确实支持进程内并行 CLR 版本控制,一个进程可以加载多个 CLR 版本。但这不会发生在您的情况下,它旨在解决 非托管 进程加载 .NET 代码时的问题。就像一个 COM 服务器。它独立运行,不知道进程中存在任何其他 .NET 代码。所以可以买得起不同的 CLR 版本。与您的情况完全不同。

.NET 4.0 与 3.5 非常兼容,3.5 程序集中的代码不太可能失败。这在技术上是可行的,Microsoft 使用 4.0 版本修复了许多 Unresolved 错误修复,这些错误修复有可能破坏现有代码。您的代码可能不小心依赖于此类错误。这种情况非常罕见,我只在 SO 看到过一些关于此类事故的问题。

关于c# - exe和assembly可以运行在不同版本的.NET framework上吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22838344/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com