Укажите .Net Framework с помощью IKVM

Я скомпилировал приложение Java в dll С# с помощью IKVM. Я пытался использовать эту dll в проекте C#, который использует .Net Framework 2.0, но потерпел неудачу, поскольку преобразованная инфраструктура dll явно выше. Я просмотрел аргументы компилятора IKVM, но ничего не нашел относительно фреймворка.

Мой вопрос сейчас:

Могу ли я указать версию фреймворка скомпилированной DLL/EXE с помощью IKVM? Если да, то как?

Заранее спасибо.


person kaiser    schedule 02.11.2012    source источник
comment
Просто чтобы немного прояснить ситуацию - IKVM не создает dll C # - он создает сборки .NET, написанные на Java.   -  person Dave Doknjas    schedule 03.11.2012


Ответы (2)


Текущая версия IKVM 7.1 построена с использованием фреймворка 2.0. Если вы создаете dll с помощью IKVMC, то по умолчанию используется фреймворк 2.0. Другое дело, если вы соберете IKVM самостоятельно.

Если вы хотите скомпилировать dll для более высокой версии 2.0, вам нужно использовать параметр командной строки:

-nostdlib

И вам нужно установить все необходимые ссылки (например, mscorlib.dll) на целевую структуру с параметром командной строки:

-r:<file name>
person Horcrux7    schedule 03.11.2012
comment
Я использую текущую версию IKVM (сам не собирал). Однако версия Framework, которую Dll использует по умолчанию, кажется 3.5, поэтому я немного смущен. - person kaiser; 03.11.2012
comment
Даже бета-версия 7.2 ссылается на 2.0. Можете ли вы показать, почему вы думаете, что ваша версия нацелена на 3.4? - person Andrew T Finnell; 03.11.2012
comment
Я не могу использовать сгенерированную dll с помощью целевой платформы 2.0. Предупреждение. Первичная ссылка IKVM.OpenJDK.Core не может быть разрешена, так как она косвенно зависит от сборки платформы System.Core, версия = 3.5.0.0, которую нельзя разрешить в текущей целевой платформе. .NETFramework, версия = v2.0. Чтобы решить эту проблему, либо удалите ссылку IKVM.OpenJDK.Core, либо перенастройте приложение на версию платформы, содержащую System.Core, Version=3.5.0.0. Какие-либо предложения? - person user1014639; 09.05.2018

Согласно моему поиску по всем версиям IKVM, версия IKVM 0.38.0.2 и более поздние версии содержат двоичные файлы IKVM, созданные с помощью фреймворка 3.5.

0.36.0.11 была последней версией, зависящей от 2.0. Эта версия поддерживает только Java 6 и в любом случае устарела.

person bastbijl    schedule 26.10.2016