У меня есть следующее событие после сборки, которое должно упаковать все зависимости .NET Framework в .exe:
$(SolutionDir)packages\ILRepack.2.0.16\tools\ILRepack.exe
/out:"$(TargetDir)$(TargetName).all.exe"
"$(TargetDir)$(TargetName).exe"
"$(TargetDir)*.dll"
/target:exe
/targetplatform:v4,"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.7.2" /wildcards
Но оно не должно упаковывать все, так как, когда я запускаю его в barebones Windows7 x64 VM, всплывающее окно говорит, что требуется .NET.После установки .NET 4.7.2 все работает нормально.
Вот вывод ILRepack:
4>------ Rebuild All started: Project: GenerateReport, Configuration: Release Any CPU ------
4> GenerateReport -> C:\code\Thor\Main\pc\tools\ReportGenerator\GenerateReport\bin\Release\GenerateReport.exe
4> INFO: IL Repack - Version 2.0.16
4> INFO: ------------- IL Repack Arguments -------------
4> /out:C:\code\Thor\Main\pc\tools\ReportGenerator\GenerateReport\bin\Release\GenerateReport.all.exe C:\code\Thor\Main\pc\tools\ReportGenerator\GenerateReport\bin\Release\GenerateReport.exe C:\code\Thor\Main\pc\tools\ReportGenerator\GenerateReport\bin\Release\*.dll
4> -----------------------------------------------
4> INFO: Adding assembly for merge: C:\code\Thor\Main\pc\tools\ReportGenerator\GenerateReport\bin\Release\GenerateReport.exe
4> INFO: Adding assembly for merge: C:\code\Thor\Main\pc\tools\ReportGenerator\GenerateReport\bin\Release\ICSharpCode.SharpZipLib.dll
4> INFO: Adding assembly for merge: C:\code\Thor\Main\pc\tools\ReportGenerator\GenerateReport\bin\Release\MDIData.dll
4> INFO: Adding assembly for merge: C:\code\Thor\Main\pc\tools\ReportGenerator\GenerateReport\bin\Release\MDIReporter.dll
4> INFO: Processing references
4> INFO: Processing types
4> INFO: Merging <Module>
4> INFO: Merging <Module>
4> INFO: Merging <Module>
4> INFO: Renaming <PrivateImplementationDetails> into <ea0a2b3c-dc31-41d4-9795-6271bac3aa6b><PrivateImplementationDetails>
4> INFO: Merging <Module>
4> INFO: Processing exported types
4> INFO: Processing resources
4> INFO: Fixing references
4> INFO: Writing output assembly to disk
4> INFO: Finished in 00:00:02.2785005
Это консольное приложение C #, созданное с помощью «Любого процессора».
Два других проекта в моем решении - это библиотеки классов рабочего стола .NET 4.7.2.
Я также попробовал ILMerge, но он потерпел неудачу со ссылкой на стороннюю библиотеку, которой он не может следовать.Эту ссылку я включил в свое приложение как ресурс, и он отлично работает.