Я использую свой стек служб, используя проект EXE (задача запуска для приложения Azure), поскольку я скопировал следующую библиотеку DLL стека служб и некоторые библиотеки DLL Azure в проект EXE.
Когда я создаю этот EXE-проект, библиотеки DLL Azure будут связаны с моим EXE, но DLL стека служб не будет связана с EXE, потому что для запуска моего EXE на любом компьютере мне нужно вручную скопировать DLL всего стека служб.
Я использовал dll этого служебного стека, чтобы использовать
JsonServiceClient client = new JsonServiceClient(servicepath);
Что мне нужно сделать, чтобы связать все эти библиотеки DLL с моим EXE?
c#
assemblies
exe
ilmerge
servicestack
Арун Рана
источник
источник
Инструмент, который вы ищете, называется ILMerge . Это инструмент командной строки, который можно использовать следующим образом:
ilmerge /target:winexe /out:MyApp.exe MyExe.exe ServiceStack.dll ServiceStack.Interfaces.dll ServiceStack.ServiceInterface.dll ServiceStack.Text.dll
Существует также статья , в которой описывается , как включить ILMerge в настройку вашего проекта VS здесь
источник
Costura ( надстройка Fody ) - отличный инструмент для включения сборок, на которые имеются ссылки, в качестве встроенных ресурсов . Автор Саймон Кропп описывает это следующим образом:
В результате получилось очень простое решение, для которого достаточно получить Costura.Fody из NuGet.
Особенности:
источник
Попробуйте ILMerge-GUI, слияние .NET . Это графический интерфейс,
Ilmerge
который позволяет избежать работы из командной строки.источник
Если у вас есть зависимости WPF, ваши возможности могут быть более ограниченными ... ILMerge, похоже, не справляется с этим. Costura.Fody (как упоминалось выше в Codefox) отлично сработал для нас, и потребовалось около 5 минут, чтобы начать ... очень хороший опыт.
Установите с помощью Nuget (выбрав правильный проект по умолчанию в консоли диспетчера пакетов).
Он объединяет все библиотеки DLL с пометкой «Copy Local» = true и создает объединенный .EXE (вместе со стандартным выводом, большая часть которого теперь не требуется), который также сжимается. Затем его можно использовать отдельно.
Лицензия MIT, поэтому вы можете изменять / распространять по мере необходимости.
https://github.com/Fody/Costura/
источник
Извлекает ServiceStack.Gap проект , который показывает несколько примеров МЕТОДИЧЕСКИЕ ILMerge ServiceStack в один кросс-платформенной EXE - файл .
ServiceStack также включает ряд других функций, которые особенно хорошо подходят для создания встроенных приложений, где он:
источник
.net core 3 представляет две новые опции в конфигурации проекта, которые называются публикацией и обрезкой одного файла.
Вы можете найти более подробную информацию о документации здесь , конфигурация проекта скопирована здесь для справки.
<PropertyGroup> <RuntimeIdentifier>win10-x64</RuntimeIdentifier> <PublishSingleFile>true</PublishSingleFile> </PropertyGroup> <PropertyGroup> <PublishTrimmed>true</PublishTrimmed> </PropertyGroup>
dotnet publish -r win10-x64 -p:PublishSingleFile=true dotnet publish -r <rid> -c Release
Полностью поддерживается объединение двух вариантов вместе для получения единой обрезанной сборки для вашего приложения.
источник