2014-11-17 126 views

回答

11

因为您正在引用更高版本。微软可以兼容,但不是“未来兼容”。您需要将整个项目转换为更高版本,以便能够使用该二进制文件。

不知道你在说什么技术,但如果是这样的话,考虑到在vNext中你能够在服务器上部署自己版本的云clr。所以你可能有2个版本的你的应用程序,一个目标4.5,其他4.0

Introducing vNext。重复,如果这涉及到你。

5

针对.NET 4.0的项目可以在4.0运行时运行。一个针对.NET 4.5的DLL不能。

如果允许;您将能够构建似乎在4.0中工作的项目,并在尝试加载4.5组件时失败。

你可以参考另一种方式;因为可以在4.5运行时加载4.0 DLL。

您将需要从第三方请求4.0版本的DLL;或目标.NET 4.5。

1

应用程序域将在4.0运行时运行,因此不能引用较新的dotnet版本,只有相反的情况是成立的。

4.5是一个不同的.net运行时,所以不能在旧版本中加载4.5。

您必须记住,运行时需要将中间语言(IL)解释为机器代码。如果IL是在4.5版本上创建的,则4.0运行时将不知道如何解释它。

2

在4.5中创建控制台应用程序,然后从4.0执行cmd以从4.5获取所需的数据,这可能是一个快速解决方案。不知道,但它的工作:)

+0

您可以使用Windows IPC机制之一进程之间进行通信。 (例如,我喜欢'IpcServerChannel')。 – xmedeko

相关问题