2009-08-08 13 views
9

Czy można wdrożyć aplikację .NET 2.0 jako przenośny plik wykonywalny? Aby mój program mógł zostać uruchomiony na dysku flash bez zainstalowanego systemu .NET Framework 2.0 na komputerze docelowym. A może jest możliwe rozpowszechnianie mojego programu z wymaganymi bibliotekami DLL .NET, więc nie jest wymagana żadna instalacja ramowa?Wdrażanie aplikacji C# (.NET 2.0) jako aplikacji przenośnej?

Wiem, że istnieje kilka alternatywnych narzędzi, aby mój. NET exe w jeden natywny plik wykonywalny, jak RemoteSoft Salamander, Xenocode Postbuild i Thinstall, ale niestety nie mogę sobie na nie pozwolić.

Próbowałem też osadzić współzależności z mkbundle Mono, ale zawiedli mój program w górę = \ (nie XP styl wizualny, złamał kilka kontroli i jego funkcjonalność)

Wszelkiego rodzaju pomoc będzie mile widziane :)

Dzięki.

fyi: moim IDE jest Microsoft Visual C# 2008 Express Edition z .NET Framework 2.0 jako ramą docelową.

Odpowiedz

9

Dobrze, inne niż rzeczy jak Salamander i Thinstall (obecnie VMWare ThinApp) byś mieć zainstalowany .NET jeśli naprawdę chcesz uruchomić .NET.

To może być możliwe, aby uruchomić Mono bez faktycznej instalacji (nie statycznie łącząc program, ale w tym Mono na dysku flash). Podejrzewam, że byłoby to trudne, ponieważ musiałbyś powiedzieć środowisku wykonawczemu o takich lokalizacjach jak GAC.

Nic nie widzę w Mono FAQ o tym, ale możesz chcieć pingować listę mailingową Mono - to brzmi jak potencjalnie interesująca i przydatna rzecz do zrobienia.

8

Nie; potrzebujesz albo zainstalowanego frameworka, albo narzędzi, o których wspomniałeś.

You potencjalnie mogłyby spojrzeć na nowy łącznik statyczny mono, ale to tyle ...

1

Thin Threat jest bardzo drogi i nie działa we wszystkich sytuacjach. Jeśli chcesz uruchomić swoją aplikację bez zainstalowanego .Net, możesz napotkać kłopoty, chociaż są narzędzia, które robią to za Ciebie i jest to tańsze niż thinstall.

Ale jeśli pytasz mnie o zdanie, to zły pomysł, aby z nich skorzystać. Lepiej przekonaj rynek docelowy do zainstalowania .Net 2 (co jest dość powszechne w dzisiejszych czasach), a następnie spakuj wszystkie pliki z biblioteki do jednego pliku za pomocą tańszego narzędzia typu Obfuscator (Jest to dobre z Smartassembly.)

Użyłem Thinstall od dawna i dużo pracowałem nad tą technologią, więc nie strzelam bez doświadczenia.

1

nie próbowałem to sobie, ale tutaj jest procedura:

  • Zrób projekt C#.
  • W oknie Solution Explorer wewnątrz twojego projektu znajduje się wiersz "Reference". Kliknij plus w pobliżu. Teraz możesz zobaczyć wszystkie zależności projektu. Usuń wszystkie referencje, które nie są używane (usuń i spróbuj uruchomić/zbuduj .Jeśli jest to możliwe, to nie jest używane.Jeśli wystąpi błąd, zwróć go, dodając (prawy przycisk myszy, "Dodaj odniesienie ")).
  • Dla każdego odwołania, przejdź do Właściwości, aw polu "Kopiuj lokalnie" wybierz "Prawda". Dla każdego obrazu, ikony ... lubisz odnośnik.
  • Odbuduj swój projekt. Teraz w folderze Build/Release (inside bin) zobaczysz wiele plików DLL. Te pliki mają informacje o każdym zasobie.
  • Skopiuj wszystkie pliki w folderze (z kroku nr 4) do nowego folderu.
  • Przejdź do folderu: "\ Microsoft.Net \ Framework \" i skopiuj plik "mscrolib.dll" do nowego folderu od kroku 5. Jeśli nie znajdziesz tego pliku, zawsze możesz wyszukać w Dysk twardy zawierający folder Windows.
  • Teraz Twoja aplikacja jest przenośna (z całą zawartością folderu).

- Źródło: http://www.codeproject.com/Tips/392308/Csharp-Portable-Exe-File

+0

to działa? – Andreas

Powiązane problemy