繁体   English   中英

我们可以有一个内置的.Net V2.0引用另一个内置的.Net V4.5吗?

[英]Can we have a DLL built in .Net V2.0 references another built in .Net V4.5?

我需要在.net v2.0中内置一个DLL,从SQL Server 2008作为外部DLL(CLR程序集)调用。 此dll必须在.net v2.0中才能与我们的SQL Server版本兼容,并且只能在SQL Server和.net V4.5中开发的其他C#功能之间建立桥梁。 所以我反驳了.Net V4.5中内置的另一个DLL,但我无法编译它! 我有一个警告:

警告MSB3258:无法解析主要引用“my_dll”,因为它与.NET Framework程序集“mscorlib,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089”具有间接依赖关系,其版本较高“4.0。 0.0“比当前目标框架中的版本”2.0.0.0“。

我们可以忽略汇编版本的兼容性吗? 或者,我们是否可以使用另一种解决方案从SQL Server 2008调用.net V.4.5中开发的任何功能?

我不确定我是在关注你的问题,但要回答它,你只需要将项目依赖项更改为.NET 4.5。 .NET框架可以引用其他框架版本,但您必须考虑依赖性的顺序。 如果2.0使用4.0库,那么它将失败,因为它没有对组件的引用。 当您的项目被编译时,它被放入一个组件中,该组件必须引用所有使用的成分。 然而; 如果您的项目是单独的dll,听起来就像它们那样,只要4.0成员未在程序集中公开公开,您就可以在它们之间进行引用。 然而; 这意味着dll需要安装4.0的环境才能使自己运行。

要运行相同程序集的不同版本,您需要将assemblyBinding添加到项目配置中。

这有点难以理解,但请看这篇文章,看看它是否有助于您更好地了解如何实现这一目标。

岗位

根据这里的答案 ,可以通过公开COM所需的组件来引用.Net 4.5程序集。 .Net的所有版本都基于COM的核心,因此它可以用作“最低公分母”的通信渠道。 根据您的要求,您可能还需要研究使用命名管道,IPC甚至Web服务。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM