Рекомендации ILMerge
Введение
В этом сообщении показано, как dotnet заменить все .exe + .dll files
одним combined .exe
. Он c-sharp также сохраняет нетронутым c#.net файл отладки .pdb
.
Для консольных приложений
Вот базовый dot-net Post Build String
для Visual Studio 2010 SP1 dotnet с использованием .NET 4.0. Я ilmerge создаю консоль .exe со всеми csharp вложенными в нее файлами dotnet .dll.
"$(SolutionDir)ILMerge\ILMerge.exe" /out:"$(TargetDir)$(TargetName).all.exe" "$(TargetDir)$(TargetName).exe" "$(TargetDir)*.dll" /target:exe /targetplatform:v4,C:\Windows\Microsoft.NET\Framework64\v4.0.30319 /wildcards
Основные советы
- На выходе получается файл «
AssemblyName.all.exe
», который объединяет все вложенные DLL в один .exe. - Обратите внимание на каталог
ILMerge\
. Вам нужно либо скопировать утилиту ILMerge в каталог решения (чтобы вы могли распространять исходный код, не беспокоясь о документировании установки ILMerge), либо изменить этот путь, чтобы он указывал на то, где находится ILMerge.exe.
Дополнительные подсказки
Если у вас есть проблемы dotnet с тем, что он не работает, включите .net-framework Output
и выберите Show output from: Build
. Проверьте точную deployment команду, созданную Visual ilmerge Studio, и проверьте наличие dot-net ошибок.
Образец скрипта сборки
Этот сценарий заменяет deploy все .exe + .dll files
одним combined .exe
. Он также сохраняет visual-c# отладочный файл .pdb в неизменном deploy виде.
Чтобы использовать, вставьте c#-language это в свой шаг Post Build
на вкладке deploy Build Events
в проекте C# и убедитесь, что .net-framework вы изменили путь в первой dot-net строке так, чтобы он указывал deploy на ILMerge.exe
:
rem Create a single .exe that combines the root .exe and all subassemblies.
"$(SolutionDir)ILMerge\ILMerge.exe" /out:"$(TargetDir)$(TargetName).all.exe" "$(TargetDir)$(TargetName).exe" "$(TargetDir)*.dll" /target:exe /targetplatform:v4,C:\Windows\Microsoft.NET\Framework64\v4.0.30319 /wildcards
rem Remove all subassemblies.
del *.dll
rem Remove all .pdb files (except the new, combined pdb we just created).
ren "$(TargetDir)$(TargetName).all.pdb" "$(TargetName).all.pdb.temp"
del *.pdb
ren "$(TargetDir)$(TargetName).all.pdb.temp" "$(TargetName).all.pdb"
rem Delete the original, non-combined .exe.
del "$(TargetDir)$(TargetName).exe"
rem Rename the combined .exe and .pdb to the original project name we started with.
ren "$(TargetDir)$(TargetName).all.pdb" "$(TargetName).pdb"
ren "$(TargetDir)$(TargetName).all.exe" "$(TargetName).exe"
exit 0
c#
.net
deployment
ilmerge
Рекомендации ILMerge
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.