2012-05-14 13 views
6

Potrzebuję proces z uprawnieniami administratora. Od this pytanie i odpowiedzi wydaje się, że nie ma lepszego sposobu niż uruchomienie osobnego procesu. Ponieważ wolałbym proces poświęcony temu, zamiast uruchamiać swoją oryginalną aplikację w drugim procesie tylko dla tej jednej metody - pomyślałem, że po prostu utworzę dwa projekty w jednym rozwiązaniu w VS2010. Jednak - próbując go wdrożyć - wydaje się, że mogę opublikować tylko jedną z nich na raz. To by nie działało, ponieważ nie chcę, aby klient musiał zainstalować więcej niż jeden - i wtedy pojawiłby się problem z określeniem względnych ścieżek itp.Jak opublikować wiele aplikacji/procesów za pomocą jednego wdrożenia clickonce?

Nie chcę, aby oba procesy były aplikacje startowe. Chcę, aby jeden był aplikacją startową, która wywołuje (w razie potrzeby) drugą tylko jedną metodę.

Więc w jaki sposób mam dwa procesy z jedną instalacją clickonce?

Odpowiedz

10

musisz musisz odwołać się do drugiego (pracującego) projektu z pierwszego (głównego) projektu - a następnie, jeśli przejdziesz do pierwszych właściwości projektu -> Opublikuj -> Pliki aplikacji, powinieneś zobaczyć drugi EXE jako zależność już . Jeśli nie, po prostu ustaw "Opublikuj status" na "Uwzględnij".

również - Nie jestem pewien, jaki jest twój cel, ale spójrz na mój post tutaj: Forced the application to have the administrator privileges - bardzo podobny problem z wywoływaniem aplikacji z uprawnieniami administratora z aplikacji ClickOnce. Może zaoszczędzić ci kilka minut.

+0

Dzięki. Wydaje się, że to zrobiło. – ispiro

+0

Czy tworzy to dwie ikony pulpitu? –

+0

@ZacharyCanann nie, tylko jeden. – avs099

3

Jeśli nie chcesz, aby użytkownik instalował więcej niż jedną aplikację, nie chcesz mieć wielu wdrożeń ClickOnce. To, czego naprawdę chcesz, to jedno wdrożenie. Aplikacja ClickOnce musi więc być Twoją główną aplikacją i musisz dodać plik exe z dodatkowej aplikacji w ClickOnce. Zrobiłbym to:

Dodaj kopię pliku exe do projektu ClickOnce, ustaw działanie build na "content" i copy-to-output-directory na "copy always". Następnie wykonaj kompilację i sprawdź okno dialogowe Pliki aplikacji we właściwościach publikowania i upewnij się, że się wyświetla.

Teraz, jeśli możesz zbudować rozwiązanie i zbuduje oba projekty, upewnij się, że buduje projekt, który najpierw tworzy model exe. Następnie dodaj polecenie post-build do projektu ClickOnce, który skopiuje go z katalogu wyjściowego pierwszego projektu do katalogu wyjściowego drugiego projektu.

Co się stanie, to zbuduje pierwszy projekt, następnie zbuduje projekt C/O (i skopiuje wersję exe projektu ClickOnce do katalogu wyjściowego), a następnie skopiuje najnowszą wersję z drugiego projektu do katalogu wyjściowego projektu ClickOnce, a następnie utworzy wdrożenie.

Nie jestem ekspertem w dziedzinie msbuild, ale polecenie późniejszego zbudowania byłoby czymś w tym stylu.

copy/Y "$ (ProjectDir) .... \ otherproject \ bin \ release \ mynew.exe" "$ TARGETDIR) \ mynew.exe"

Kopiuje z obecnego projektu, maksymalnie dwóch poziomach , drugi projekt, a następnie folder bin, a następnie release + mynew.exe, do katalogu wyjściowego kompilacji. Nie zamierzam mieć struktury katalogów dokładnie w stosunku do innego projektu - musisz to ustawić samodzielnie. Ale to daje ogólny pomysł.

+0

Dzięki. To wygląda obiecująco. – ispiro

Powiązane problemy