2014-01-22 4 views
0

У меня проблема с ILMerge, последней версией 2.12.0803. Даже мои сборки имеют процессорную архитектуру, установленную для MSIL, выходная объединенная сборка имеет x86.ILMerge выдает сборку с процессоромArchitecture = x86

Путь я бегу ILMerge является:

ILMerge.exe /t:library /targetPlatform="v4,C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0" /keyfile:key.snk /output:"Test.dll" a.dll b.dll ... other assemblies 

На время сборки у меня есть предупреждение:

Там было несоответствие между архитектурой процессора проекта строится «MSIL» и процессорная архитектура эталона «Тест», «x86»

и во время работы я получаю Fi ле Не найдено исключение:

Не удалось загрузить файл или сборку 'Test, Version = 3.9.32.0, культура = нейтральной, PublicKeyToken = 8fd4d0b13dde34b0' или один из его зависимостей. Система не может найти указанный файл.

Запуск gacutil:

C: \ Windows \ system32> gacutil/л "Test, Version = 3.9.32.0, Culture = нейтрально, PublicKeyToken = 8fd4d0b13dde34b0" Microsoft (R) .NET Глобальная утилита кэширования сборок. Версия 4.0.30319.17929 Авторское право (c) Корпорация Microsoft. Все права защищены.

Глобальный кэш сборок содержит следующие узлы: Test, Version = 3.9.32.0, культура = нейтральной, PublicKeyTok еп = 8fd4d0b13dde34b0, processorArchitecture = x86

Есть ли способ изменить processorArchitecture к MSIL для объединенной сборки?

+0

MSIL - это не архитектура процессора, не так ли? –

+0

Это то, что выводит gacutil: глобальный кэш сборок содержит следующие сборки: Test, Version = 3.9.32.0, Culture = neutral, PublicKeyToken = 8fd4d0b13dde34b0, processorArchitecture = MSIL. Итак, это? .. Я явно имел в виду имя параметра .. –

ответ

0

Я решил проблему. Проблема заключалась в том, что для одной из сборок требуется 32 бита, см. ServiceStack.Redis.

Из файла журнала ILMerge:

Проверки, чтобы видеть, что все входные сборок имеют совместимый PeKind.

ServiceStack.PeKind = ILonly 
ServiceStack.Interfaces.PeKind = ILonly 
ServiceStack.Common.PeKind = ILonly 
ServiceStack.OrmLite.PeKind = ILonly 
ServiceStack.Redis.PeKind = ILonly, Requires32bits 
ServiceStack.ServiceInterface.PeKind = ILonly 
ServiceStack.Text.PeKind = ILonly 
log4net.PeKind = ILonly 
Смежные вопросы