Рекомендации ILMerge
Введение
В этом сообщении показано, как deploy заменить все .exe + .dll files
одним combined .exe
. Он deploy также сохраняет нетронутым deploy файл отладки .pdb
.
Для консольных приложений
Вот базовый dot-net Post Build String
для Visual Studio 2010 SP1 .cs-file с использованием .NET 4.0. Я c#-language создаю консоль .exe со всеми web-deployment вложенными в нее файлами ilmerge .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.
Дополнительные подсказки
Если у вас есть проблемы .net-framework с тем, что он не работает, включите dotnet Output
и выберите Show output from: Build
. Проверьте точную .cs-file команду, созданную Visual deploy Studio, и проверьте наличие c-sharp ошибок.
Образец скрипта сборки
Этот сценарий заменяет c-sharp все .exe + .dll files
одним combined .exe
. Он также сохраняет .net-framework отладочный файл .pdb в неизменном c# виде.
Чтобы использовать, вставьте dotnet это в свой шаг Post Build
на вкладке .net Build Events
в проекте C# и убедитесь, что visual-c# вы изменили путь в первой .net строке так, чтобы он указывал visual-c# на 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, нажмите здесь.