1

我正在开发 BizTalk 2006 R2(使用 ESB 指导 1.0)

我最近在 VS 2010 上用 dot net framework 4.0 结束了一个新模型(Dot net model)的开发,新模型使用 4.0 特性并且不能降级。我发现 GAC 在新的 4.0 框架中发生了变化,并被放置在不同的位置(dot net framework 4.0 中对 gac 的更改

我的一个编排使用 4.0 程序集来扩展功能。我在 GAC(新 GAC)中注册了程序集,但我不断收到错误消息:

无法加载文件或程序集“MyAssembly,Version=1.0.0.0,Culture=neutral,PublicKeyToken=0177fe918f6918aa”或其依赖项之一。该系统找不到指定的文件。

甚至可以使用 BizTalk 2006 R2 并调用 dot net 4.0 程序集(使用参考)吗?

PS 我的替代方法是将 4.0 模型公开为 WCF 服务并从 BizTalk 调用它,但我想将它保存到最后)

4

2 回答 2

3

简单地说,没有。

在 2010 版本之前,旧版本的 BizTalk Server 不了解新的 CLR 4.0 GAC,因此无法从那里加载程序集。BizTalk Server 2010 是第一个支持 CLR 4.0 的版本。对于 BizTalk Server 2006 R2,您需要针对较旧版本的 .NET Framework 编译您​​的程序集,不幸的是,这在您的方案中听起来像是一个非初学者。你被困在一块岩石和一个坚硬的地方之间。升级 BizTalk Server 或找到降级 .NET 4.0 程序集的方法。

Microsoft 在每次对 .NET 框架进行版本化时都设法实现了高度的前向兼容性,但仅限于特定版本的 CLR 范围内。因此,.NET 1.1 代码几乎与 .NET 1.0 完全向前兼容,而 .NET 3.5 与 .NET 2.0 代码相当向前兼容(主要问题往往是在旧版本的编译器中缺乏某些语言功能)。但是,每次 CLR 启动时,恐怕所有的赌注都没有了。毕竟,CLR 是运行时环境。这就是为什么微软在推出 CLR 的主要新版本之前经过长时间的思考。CLR 4.0 是自 2005 年以来的第一次重大修订。我们必须希望至少在十年之后,MS 才会觉得有必要再次修订 CLR。

于 2011-10-04T14:15:06.867 回答
1

鉴于Biztalk 路线图,我怀疑您需要等待 Biztalk 2010,其中一项新功能是 .NET 4.0。大概 Biztalk 2006 R2 正在运行 CLR v2,因此尝试在那里加载所有内容。

如果您绝对需要 .NET 4.0 的功能,您是否可以单独运行自己的服务器,然后从用 .NET 3.5 编写的代理层与之通信?

于 2010-06-27T06:56:50.983 回答