Używam C # Express 2010. Zrobiłem aplikację WPF z darmowymi kontrolkami VIBlend Edit, te kontrolki używają odpowiednich bibliotek dll, czy można utworzyć samodzielny plik wykonywalny? Chcę skopiować tylko exe na inną maszynę (oczywiście jest zainstalowany framework), ale nie chcę kopiować biblioteki DLL!
Odpowiedzi:
3 dla odpowiedzi № 1Spróbuj użyć ILMerge
1 dla odpowiedzi nr 2
ILMerge
Oto kilka zasobów dotyczących ILMerge, które mogą okazać się pomocne:
- Scalanie zestawów .NET przy użyciu ILMerge
- Kiedy i jak korzystać z ILMerge
- Zadania ILMerge dla NAnt i MSBuild
Korzystanie z GAC
To, co możesz zrobić, to zarejestrować bibliotekę DLL w pamięci podręcznej Global Assembly Cache (GAC) na komputerze klienckim, dzięki czemu będzie mogła z niej korzystać.
Ale musiałyby zostać zainstalowane w GAC.
Edytować
Wygląda na to, że się myliłem, jednak zdecydowanie odradzałbym włączanie bibliotek dll innych firm do jednego pliku wykonywalnego, ponieważ może to nie być dozwolone przez licencję.
0 dla odpowiedzi № 3
Nie do końca, chyba że masz kod źródłowy do biblioteki, a następnie jesteś gotów poświęcić czas na rozwiązanie całego problemu, który będziesz miał podczas scalania kodu z wykonywalnym zestawem.
Jeśli używasz produktu do łączenia zespołów (takich jak SmartAssembly) możesz scalić to wszystko w jeden EXE, ale SmartAssembly nie jest wolny. (Jest to jednak świetny produkt, który robi znacznie więcej niż tylko łączenie zespołów)
0 dla odpowiedzi nr 4
Trzecia opcja (z dwóch już wspomnianych) tospakuj całość do instalatora (MSI). Wciąż wymagałoby to, aby biblioteki DLL były gdzieś (albo w folderze aplikacji, albo w GACd), ale przedstawiają je klientowi w bardziej kontrolowany sposób. Po prostu instalują pakiet.
0 dla odpowiedzi № 5
.NET obsługuje to po wyjęciu z pudełka. Widzieć ten przewodnik jak.