【问题标题】:How to Compile java7 code with IKVMC for .NET framework 3.5 support?如何使用 IKVM 编译 java 7 代码以获得 .NET 框架 3.5 支持?
【发布时间】:2012-09-30 05:23:27
【问题描述】:

我正在尝试从一些引用使用 IKVMC 交叉编译的 dll 的编译代码生成 Microsoft SQL Server 2008 Express R2 存储过程 (C#) CLR。原始代码是用java7编写的。问题是 IKVM 给了我一个 .NET 框架 4.0 程序集。 SQL Server 2008 不支持 .NET 框架 4.0!我想知道是否有办法让我的程序集交叉编译为 .NET 框架 3.5 而不是 4.0?

列出 IKVM 支持的平台,包括我想要定位的“.NET 2.0 SP2 x64 Windows”: http://weblog.ikvm.net/PermaLink.aspx?guid=692505a6-f9e7-45ec-90b9-ec7a75d3b509

一直在这里查看 IKVMC 选项: http://sourceforge.net/apps/mediawiki/ikvm/index.php?title=Ikvmc

我不清楚如何指定“.NET 2.0 SP2”或框架 3.5?

此外,我坚持使用 SQL Server 2008,所以我不能简单地升级到新版本来获得框架 4.0 支持。

【问题讨论】:

  • 我能够通过从 'C:\Windows\Microsoft.NET 加载依赖项 System.Windows.Forms.dll 和 System.Drawing.dll 将 IKVM.Runtime.dll 加载到 SQL Server 2008 中\Framework\v2.0.50727' 我猜这些 dll 向后兼容 v1.1,根据:ikvm.net/userguide/intro.html ...希望我构建的 dll 现在也能加载。
  • 不得不手动将这些程序集加载到 SQL Server 2008 中感觉有点奇怪?它们不应该默认可用吗?

标签: .net sql-server clr java-7 ikvm


【解决方案1】:

IKVM 是为 .net 2.0 编译的。这意味着它适用于 .NET 2.0 到 3.5 没有问题。如果您使用 .NET 4.0,那么您需要处理 app.config 文件。

如果所有需要的 dll 都在同一个目录中,那么静态加载 dll 应该不会有任何问题。

编译您的 dll 可能会出现问题。详情请见classloader wiki

如果没有帮助,您收到的错误消息可能会有所帮助。您通过邮件列表收到的对 IKVM 的最佳帮助。

【讨论】:

  • 是的,昨天开始工作了。我困惑的根源在于手动加载 System.Drawing 和 System.Windows.Forms dll。我不明白 dll 是否兼容,为什么它会寻找这些?它们不应该自动加载吗?可能不会。感谢您的反馈意见。会给你支票!
猜你喜欢
  • 2023-03-20
  • 1970-01-01
  • 2015-05-25
  • 1970-01-01
  • 2020-01-22
  • 2019-11-22
  • 1970-01-01
  • 2012-03-22
  • 2011-06-25
相关资源
最近更新 更多