Почему я не могу ILMerge Zxing? - PullRequest
       17

Почему я не могу ILMerge Zxing?

0 голосов
/ 12 ноября 2018

Попытка проекта ILMerge, содержащего пакет Zxing.NET:

"C:\Program Files (x86)\Microsoft\ILMerge\ILMerge.exe" CommandLineDecoder.exe zxing.dll zxing.presentation.dll  /out:CommandLineDecoder2.exe

Ошибка:

An exception occurred during merging:
Unresolved assembly reference not allowed: System.Numerics.
   at System.Compiler.Ir2md.GetAssemblyRefIndex(AssemblyNode assembly)
   at System.Compiler.Ir2md.GetTypeRefIndex(TypeNode type)
   at System.Compiler.Ir2md.VisitReferencedType(TypeNode type)
   at System.Compiler.Ir2md.VisitReferencedType(TypeNode type)
   at System.Compiler.Ir2md.VisitClass(Class Class)
   at System.Compiler.Ir2md.VisitModule(Module module)
   at System.Compiler.Ir2md.SetupMetadataWriter(String debugSymbolsLocation)
   at System.Compiler.Ir2md.WritePE(Module module, String debugSymbolsLocation, BinaryWriter writer)
   at System.Compiler.Writer.WritePE(String location, Boolean writeDebugSymbols, Module module, Boolean delaySign, String keyFileName, String keyName)
   at System.Compiler.Writer.WritePE(CompilerParameters compilerParameters, Module module)
   at ILMerging.ILMerge.Merge()
   at ILMerging.ILMerge.Main(String[] args)

Почему я получаю эту ошибку?Что это значит?Как это исправить?

1 Ответ

0 голосов
/ 12 ноября 2018

С https://github.com/dotnet/ILMerge:

ILMerge работает в v4.0 .NET Runtime, но он также может объединять сборки из других версий каркаса, используя параметр / targetplatform.Пожалуйста, смотрите документацию.(Однако он может объединять файлы PDB только для сборок v2 (и более поздних).)

Я ожидаю, что вы используете класс из System.Numerics, который недоступен в v4.0, и вам нужноизмените целевую платформу либо в коде:

public void SetTargetPlatform(string platform, string dir);

, либо с помощью командной строки:

/targetplatform:version,platformdirectory

Где первый аргумент - версия платформы, а второй аргумент - каталог вкакой mscorlib.dll нужно найти.

Соответствующий раздел документации:

https://github.com/dotnet/ILMerge/blob/master/ilmerge-manual.md#221-settargetplatform

...