C# 在.NET4.0应用程序中使用.NET4.5编译dll

C# 在.NET4.0应用程序中使用.NET4.5编译dll,c#,.net,C#,.net,长话短说,我有一个基于控制台的应用程序,它必须向后兼容XP。它是在.NET4.0中编译的 我需要4.5的zip管理功能,不能成为第三方。我已将该功能添加到.NET4.5编译的dll中 甚至有可能让这两个“说话”和“玩得很好”。不同框架的dll肯定可以在没有太多问题的情况下进行交互。。。然而,对你来说,你运气不好 .dll即.NET 4.5将要求在您的XP计算机上安装.NET 4.5 framework。当然,你不能这么做 因此答案是:不。不同框架的dll当然可以在没有太多问题的情况下进行交互。。

长话短说,我有一个基于控制台的应用程序,它必须向后兼容XP。它是在.NET4.0中编译的

我需要4.5的zip管理功能,不能成为第三方。我已将该功能添加到.NET4.5编译的dll中


甚至有可能让这两个“说话”和“玩得很好”

。不同框架的dll肯定可以在没有太多问题的情况下进行交互。。。然而,对你来说,你运气不好

.dll
.NET 4.5
将要求在您的XP计算机上安装
.NET 4.5 framework
。当然,你不能这么做


因此答案是:

。不同框架的dll
当然可以在没有太多问题的情况下进行交互。。。然而,对你来说,你运气不好

.dll
.NET 4.5
将要求在您的XP计算机上安装
.NET 4.5 framework
。当然,你不能这么做


所以答案是:

不,你不能那样做。它将遵循编译时错误


无法解析“”,因为它是根据“.NETFramework,Version=v4.5”框架生成的。这是一个比当前目标框架“.NETFramework,version=v4.0”更高的版本。它将遵循编译时错误


无法解析“”,因为它是根据“.NETFramework,Version=v4.5”框架生成的。这是一个比当前目标framework“.NETFramework,version=v4.0”更高的版本。

在2种情况下是可能的,1您正在为产品提供完整的安装程序,2您需要的库未使用目标计算机上不可用的系统dll

99.9999%的时间这是不值得的

基本上,您需要做的是从框架中安装所需的Dll(记住,所需的Dll被定义为您需要的Dll,以及它所依赖的每个Dll),该框架不是作为程序的纯本地资源安装在目标机器上的

这可能意味着重新编译大量.nets DLL以断开框架链接


就我个人而言,我建议使用第三方zip库,如

在2种情况下是可能的,1您提供产品的完整安装程序,2您需要的库不使用目标计算机上不可用的系统dll

99.9999%的时间这是不值得的

基本上,您需要做的是从框架中安装所需的Dll(记住,所需的Dll被定义为您需要的Dll,以及它所依赖的每个Dll),该框架不是作为程序的纯本地资源安装在目标机器上的

这可能意味着重新编译大量.nets DLL以断开框架链接


就我个人而言,我建议使用第三方压缩库,如

,即使他们可以,4.5程序集也不能在XP上运行。这是不可能的,当然,这是显而易见的?这是可能的,但它需要大量的工作,首先你必须从代码中删除所有默认库,然后直接链接到DLL并标记为本地副本,然后,您必须确保所有库都不需要XP中不存在的windows 7+系统库。即使可以,4.5程序集也无法在XP上运行。这是不可能的,当然,这是显而易见的?这是可能的,但工作量很大,首先,您必须从代码中删除所有默认库,然后直接链接到DLL并标记为本地副本,然后,您必须确保所有库都不需要XPS中没有的windows 7+系统库。这就是我要表达的意思。我想应该是这样的。谢谢-为什么是微软为什么。。。。在开发人员寻找集成到.net中的.net功能很久之后,同一版本的开发人员打破了所有向后兼容性…@asuppa。所以问题是为什么你仍然在使用XP。@asuppa:公平地说。。。XP比一些电脑上的程序员要老,所以。@Habib它代表xpmode,-我真的不能告诉你我是怎么编码的:)@andrew,这是公平的,我的意思是,即使XP已经停止了一段时间,(几年了?)它仍然感觉到它仍然占多数,即使只是在newwer系统上通过xpmode。我想应该是这样的。谢谢-为什么是微软为什么。。。。在开发人员寻找集成到.net中的.net功能很久之后,同一版本的开发人员打破了所有向后兼容性…@asuppa。所以问题是为什么你仍然在使用XP。@asuppa:公平地说。。。XP比电脑上的一些程序员要老,所以。@Habib它代表xpmode,-我真的不能告诉你我是怎么编码的:)@andrew,这是公平的,我的意思是,即使XP已经中断了一段时间,(几年了?)它仍然感觉到它仍然占了大多数,即使它只是在newwer系统上通过xpmode。