ILMerge & Compact Framework

Не получается объединить dll.С Compact Framework должно работать?
14 ответов

Sergey_New, а что по этому поводу говорит сайт ILMerge? Кстати, есть более продвинутый вариант -- http://www.xenocode.com/Products/правда, платный.


arilou, сайт ILMerge ничего не говорит ...Разобрался!Framework 3.5 не поддерживается.Если приложение и библиотеки сделаны в Compact Framework 2.0, то все ОК.У меня они были на 3.5. Переделал и все пошло.


http://research.microsoft.com/en-us/people...tt/ilmerge.aspx
Currently, ILMerge works only on Windows-based platforms
Вобщем, скорее всего не поддерживается, но можешь уточнить:
If you have any problems using it, please get in touch. (mbarnett _at_ microsoft _dot_ com)


arilou, у меня с ангельским туго.Не можете спросить у автора, планирется ли поддержка Framework 3.5 и  Compact Framework 3.5?


Sergey_New, напиши ему
Hi Mike,I am having problems with using ILMerge with Compact Framework assemblies. I was not able to find relevant info in your blog. Could you tell me if ILMerge supports .NET framework 3.5 and Compact Framework 3.5? If not, are you planning to add the necessary functionality to it? Thanks a lot in advance, you've got a great tool!Best regards,Sergey


arilou, спасибо, написал.Получил ответ:Thanks! ILMerge shouldn't have any problems with v3.5. The system assembly is the same as v2.0, isn't it? You might just have to supply the path to any needed 3.5 framework assemblies so that ILMerge can find them. Feel free to send me the log file or a zip file containing the assemblies you're having problems with and I can take a look.Говорит, что у ILMerge не должно быть никаких проблем с v3.5.Послал ему свой exe файл. Пишет:When I open ColorTab.exe in ildasm, I see an assembly reference to mscorlib, but its version is 3.5. How did you ever generate that? As far as I'm aware, there is no mscorlib in the v3.5 framework. It just uses the v2.0 mscorlib. If I compile a C# solution within VS and explicitly set its target framework to 3.5, I still see an external reference to the v2.0 mscorlib in its references.Как я понял, в манифесте моего файла указана не та версия mscorlib (или ссылки не должно быть?):// Metadata version: v2.0.50727.assembly extern mscorlib


В общем, не разобрался, что нужно сделать :(


Sergey_New
When I open ColorTab.exe in ildasm, I see an assembly reference to mscorlib, but its version is 3.5. How did you ever generate that? As far as I'm aware, there is no mscorlib in the v3.5 framework. It just uses the v2.0 mscorlib. If I compile a C# solution within VS and explicitly set its target framework to 3.5, I still see an external reference to the v2.0 mscorlib in its references.
Дословно: когда я открываю colortab.exe в ildasm, я вижу ссылку на mscorlib, но версия указана 3.5. Как у тебя получилось так скомпилировать? Насколько я знаю, в версии 3.5 фреймворка нет нового mscorlib, там используется v2.0 mscorlib. Даже если я компилирую в VS.NET и устанавливаю target framework в 3.5, ссылка все равно идет на mscorlib v2.0. 


arilou, спасибо!В  ildasm у файла ColorTab.exe:
// Metadata version: v2.0.50727.assembly extern mscorlib
Т.е. версия mscorlib 2.0 а не 3.5.Командная строка для слияния ColorTab.exe и ColorTab.dll:
ilmerge /targetplatform:3.5,C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 ColorTab.exe ColorTab.dll /out:demo.exe
Что не так? Перепробовал всякие сочетания 2.0 и 3.5 


Что не так? Перепробовал всякие сочетания 2.0 и 3.5  
а ты пробовал /targetplatform:3.5,C:\WINDOWS\Microsoft.NET\Framework\ПУТЬ_К_ФАЙЛАМ_3.5 ? именно это он и советует


arilou, если под ПУТЬ_К_ФАЙЛАМ_3.5 поразумевается путь к файлам ColorTab.exe и ColorTab.dll, то их я разместил в одной папке с ilmerge.exe.А если  - /targetplatform:3.5,C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 - не работает.


arilou, если под ПУТЬ_К_ФАЙЛАМ_3.5 поразумевается путь к файлам ColorTab.exe и ColorTab.dll, то их я разместил в одной папке с ilmerge.exe.А если  - /targetplatform:3.5,C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 - не работает. 
А если /targetplatform:3.5,C:\WINDOWS\Microsoft.NET\Framework\v3.5 ?


arilou, это проверялось в первую очередь :(Там нет mscorlib. Эта библиотека существует только в v2.0.50727.Об этом и писал Mike. Версия 3.5 только дополняет v2.0.50727.


На остается только еще раз отправить ему оба файла (проверив ildasm'ом еще раз на предмет номера версии mscorlib), и попросить его прислать тебе командную строку ilmerge, которая корректно собирает эти файлы в один. кстати, оно у тебя под compact framework собрано? если да, то это нужно указать. а то я в его тексте слова compact вообще не увидел.