Посочете .Net Framework с IKVM

Компилирах Java приложение в C# dll с IKVM. Опитах се да използвам тази dll в C# проект, който използва .Net Framework 2.0, но не успях, тъй като конвертираната dlls рамка очевидно е по-висока. Прегледах аргументите на компилатора на IKVM, но не намерих нищо относно рамката.

Въпросът ми сега е:

Мога ли да посоча версията на рамката на компилирания DLL/EXE с IKVM? Ако е така, как?

Благодаря предварително.


person kaiser    schedule 02.11.2012    source източник
comment
Само за да изясня малко нещата - IKVM не произвежда C# dlls - той произвежда .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

Създадох въз основа на отговора на explunit и приложих ширината на чертата по-селективно. Ето какво завърших:

 vis.selectAll('.axis line, .axis path')
     .style({'stroke': 'Black', 'fill': 'none', 'stroke-width': '3px'});
- 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