Jak połączyć wiele zespołów w jeden?
Używam mojego stosu usług przy użyciu projektu EXE (zadanie startowe dla aplikacji azure), ponieważ skopiowałem następujące biblioteki DLL stosu usług i niektóre biblioteki DLL platformy Azure do projektu EXE.
Kiedy buduję ten projekt EXE to Azure DLL będzie dołączony do mojego EXE, ale service stack 's DLL nie będzie dołączony do EXE, ponieważ aby uruchomić mój EXE na dowolnym komputerze muszę ręcznie skopiować wszystkie service stack' s DLL.
Użyłem dll tego stosu usług, aby użyć
JsonServiceClient client = new JsonServiceClient(servicepath);
Co powinienem zrobić, aby połączyć te wszystkie biblioteki DLL do mojego EXE?
6 answers
Masz kilka opcji:
Lub
- Użyj jakiegoś narzędzia, takiego jak SmartAssembly (komercyjny)
może osadzać i scalać między innymi (nie trzeba zmieniać kodu źródłowego)
Lub
-
Kod w mniej niż 10 linijkach (darmowa, ale minimalna zmiana kodu źródłowego)
Oznacz wszystkie potrzebne zależności jako " embedded resource" - w ten sposób są one zawarte w pliku EXE... musisz skonfigurowaćAssemblyResolve
handler, który podczas wykonywania odczytuje z zasobów i zwraca potrzebne biblioteki DLL do środowiska wykonawczego. NET...
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-11-10 12:04:59
Narzędzie, którego szukasz nazywa się ILMerge . Jest to narzędzie wiersza poleceń i może być używane w następujący sposób:
ilmerge /target:winexe /out:MyApp.exe
MyExe.exe ServiceStack.dll ServiceStack.Interfaces.dll ServiceStack.ServiceInterface.dll ServiceStack.Text.dll
Jest również artykuł, który opisuje, jak włączyć ILMerge do konfiguracji projektu VS tutaj
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-11-10 11:41:27
Świetnym narzędziem do dołączania odwołanych zestawów jako wbudowanych zasobów jest Costura (a Fody Dodatek). Autor Simon Kropp opisuje go w następujący sposób:
[...] połączenie dwóch metod:
- sugestia Jeffreya Richtera o wykorzystaniu wbudowanych zasobów jako metody łączenia assemblies
- sugestia Einara Egilssona używanie cecil do tworzenia inicjatorów modułów
Wynik jest super proste rozwiązanie, które wymaga jedynie pobrania Costury.Fody z NuGet.
Funkcje:
- włącznie z symbolami debugowania
- Kompresja wbudowanych zespołów
- W tym / z wyłączeniem określonych zespołów
- Inne (patrz Readme)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-23 04:56:37
Spróbuj ILMerge-GUI, połączenia. NET .
Jest to oparte na GUI Ilmerge
, które unika pracy z wierszem poleceń.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-23 04:37:31
Jeśli masz zależności WPF, Twoje opcje mogą być bardziej ograniczone..... ILMerge chyba się tym nie zajmuje. Costura.Fody (jak wspomniano powyżej przez Codefox) działał dla nas jednak doskonale i zajęło około 5 minut, aby rozpocząć... bardzo dobre doświadczenie.
Zainstaluj za pomocą Nuget (wybór odpowiedniego domyślnego projektu w konsoli Menedżera pakietów).
Scala wszystkie biblioteki DLL oznaczone "Copy Local" = true i tworzy scalone .EXE (obok standardowego wyjścia, z których większość jest teraz nie jest konieczne), który jest również skompresowany. Można go następnie stosować samodzielnie.
Licencja jest MIT, więc można modyfikować / dystrybuować zgodnie z wymaganiami.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-13 14:21:42
Sprawdź ServiceStack.Gap projekt, który pokazuje kilka przykładów HOWTO ILMerge ServiceStack w jednej wieloplatformowej .exe .
ServiceStack zawiera również szereg innych funkcji, które szczególnie dobrze nadają się do tworzenia wbudowanych aplikacji, gdzie:
- Pozwala na samodzielne hostowanie usług za pomocą. NET Listener HTTP
- obsługuje wstępnie skompilowane widoki Razora
- Obsługuje Wbudowane Zasoby
- obsługuje wbudowany baza danych w Sqlite i OrmLite
- mogą być połączone w jeden .exe
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-06-26 13:12:04