2014-12-15 12 views
6

Mam aplikację WPF, która zostanie zainstalowana na kilku komputerach klienckich. Używam InstallShield Express Edition jako narzędzia do wdrażania tego.Pliki EXE aplikacji WPF i konsoli w tym samym rozwiązaniu

Stworzyłem inny projekt (DLL), aby śledzić instalacje oprogramowania. Zasadniczo jest to samodzielny projekt C-C#, który odczytuje, zapisuje i wykonuje niektóre sprawdzanie poprawności w rejestrach systemu Windows i może być zintegrowany z innymi aplikacjami WPF (ten projekt/biblioteka DLL będzie przydatna dla innych aplikacji).

Co chcę zrobić, to utworzyć plik .EXE, aby zarejestrować instalację. Ten .EXE nie jest używany w głównej aplikacji WPF, ale korzysta z .DLL, o którym właśnie mówiłem powyżej.

Udało mi się to zrobić, tworząc inne rozwiązanie za pomocą pojedynczego projektu aplikacji konsolowej i odwołując się do niezbędnych bibliotek DLL. Ale ja naprawdę chcę stworzyć go jako projekt w ramach Mojego Rozwiązania Aplikacji Głównej, a kiedy to zrobię, nie zostanie wygenerowany plik .EXE inny niż plik wykonywalny Main App.

Czy jest coś, co mogę zrobić, aby uzyskać pliki 2 .EXE (główna aplikacja i InstallationRegistration) lub w jaki sposób obecnie używam tego sposobu?

Jest to bardziej uciążliwe niż problem, ale nadal ... będzie to lepszy sposób na śledzenie tego małego modułu we wszystkich różnych opracowanych przeze mnie aplikacjach.

Dzięki

+1

Co używasz do budowania rozwiązania? VS nie powinien mieć problemu z budowaniem różnych projektów, każdy z własnym plikiem wykonywalnym. – Euphoric

Odpowiedz

0

Domyślnie wszystkie artefakty kompilacji pośrednich są umieszczane w folderze obj w ramach danego projektu w rozwiązaniu (do tej pory nie mam świadomości, że można to zmienić).

W przypadku wyjść projektowych domyślnie umieszczane są one w bin \ Debug lub bin \ Release w zależności od konfiguracji konfiguracji.

Można to jednak zmienić w oknie Właściwości projektu; w szczególności na karcie Build dostępna jest opcja "Output path", aby określić lokalizację wyjściową kompilacji.

To musi być wykonane na podstawie projektu, ale generalnie stworzyć bin folderu SolutionDir \ pod korzenia rozwiązanie i bezpośrednich wszystkich ścieżek wyjściowych projekt SolutionDir \ bin \ Debug lub SolutionDir \ bin \ Release w zależności od sytuacji. Ma to dodatkową zaletę lub zmniejsza całkowity rozmiar SolutionDir poprzez unikanie wielu kopii zespołów wyjściowych w dużych rozwiązaniach o złożonych zależnościach między projektami.

Czy to pomaga?

+0

Tak ... faktycznie. W drugim folderze wyjściowym utworzono kilka powtarzających się plików .DLL. A wszystko, czego potrzebuję, to mój .EXE. W ten sposób zapobiega się tworzeniu wszystkich dodatkowych "śmieci". Wielkie dzięki – David

+0

Nie ma za co. – Eniola

1

Mówisz, EXE Konsola nie jest stworzona jako część kompilacji/uruchomienia rozwiązania?

Czy plik EXE konsoli nie jest tworzony jako część projektu wdrożenia InstallShield?

Jeśli odnosimy się do budowy konsoli EXE jako część kompilacji/uruchomienia rozwiązania:

Generalnie, gdy trafisz F5, Visual Studio buduje tylko te projekty wyznaczyć jako Uruchamianie i ich zależności.

Będziesz musiał jawnie zbudować aplikację Console lub Całe Rozwiązanie.

Możesz wyznaczyć go jako jeden z projektów Startup, jeśli chcesz go budować za każdym razem, gdy uderzysz w F5; lub określ go jako zależność projektu MainApp (to trochę oszukiwać, ale robi to zadanie).

+0

Właśnie napisałem rozwiązanie ... dostałem się tam, czytając odpowiedź. Zacząłem myśleć o przejściu do folderu debugowania w folderze aplikacji. Dzięki – David

1

Po spróbowaniu na kilka różnych sposobów dotarłem do tego DUH !!! za chwilę.

Co się stało, że VS było stworzenie zarówno pliki EXE dla aplikacji Głównego i aplikacji konsoli, tylko każdy z nich jest w ich odpowiednim Debug/Release Folder

na przykład:

Menem App -> C: \ Projects \ MyApp \ MyAppUI \ bin \ Debug \ MyAppUI.exe

Intallation Control.EXE -> C: \ Projects \ MyApp \ InstControl \ bin \ Debug \ InstControl.exe

UWAGA: C: \ Projects \ MyApp jest folderem rozwiązania.

To trochę sens, są one na ich własnym folderze, ale z drugiej strony, nie powinno być opcja w VS, aby wybrać, gdy chcemy wysłać cały roztwór za .EXE

Mam nadzieję, że ktoś pomoże w przyszłość.

+0

Można właściwie ustawić ścieżkę wyjściową kompilacji z właściwości projektu. Generalnie zrzucam wszystkie biblioteki dll i exe w tych samych folderach w katalogu głównym rozwiązania. Na przykład $ (SolutionDir) \ bin \ Debug lub $ (SolutionDir) \ bin \ Release – Eniola

Powiązane problemy