Я пытаюсь использовать ILMerge, чтобы создать единый исполняемый файл, который использует Windows Azure SDK 2.0 включая Microsoft.WindowsAzure.ServiceRuntime.dll
, который я добавил вручную, потому что я не мог найти какой-либо пакет NuGet, который содержит его.ILMerge: Как объединить библиотеку времени Azure?
Я использую следующую командную строку на событие VS2012 после сборки:
/wildcards /targetplatform:"v4,C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0" /log:ILMerge.log /closed Output.exe *.dll /out:Executable.exe
Однако, я получаю следующее сообщение об ошибке в ILMerge.log
, хотя отчеты выходного окна никаких проблем вообще после здание:
The assembly 'Microsoft.WindowsAzure.ServiceRuntime' was not merged in correctly. It is still listed as an external reference in the target assembly.
An exception occurred during merging:
ILMerge.Merge: The assembly 'Microsoft.WindowsAzure.ServiceRuntime' was not merged in correctly. It is still listed as an external reference in the target assembly.
at ILMerging.ILMerge.Merge()
at ILMerging.ILMerge.Main(String[] args)
И то исполняемый выдает следующее исключение при открытии:
System.Reflection.TargetInvocationException: Exception has been thrown by the
target of an invocation. ---> System.IO.FileNotFoundException: Could not load file
or assembly 'msshrtmi, Version=2.0.0.0, Culture=neutral, publicKeyToken=31bf3856ad364e35'
or one of its dependencies.
Я также тестировал один и тот же выход без слияния, и он отлично работает.
Что мне здесь не хватает?
Что вы будете делать с этим исполняемым файлом после его получения? – sharptooth
Я включу его в пакет установщика. Я хочу сохранить все в одном файле. Зачем? –
Я полностью понимаю, почему вам нужен один исполняемый файл для вашего установщика. Это не роль облачного сервиса, не так ли? – sharptooth