2010-01-14 10 views

Odpowiedz

8

W projekcie instalacji kliknij projekt prawym przyciskiem myszy i wybierz Widok> Akcje niestandardowe. Dodaj niestandardową akcję. Teraz wybierz Dodaj wyjście, wybierz projekt usługi sieciowej i kliknij OK.

Teraz wybierz akcję niestandardową i ustaw właściwość CustomActionData zawierać coś takiego /ProductName=[PRODUCTNAME] /whateveryouwant=[Whateveryouwant] (należy pamiętać, że są to pary klucz-wartość, to znaczy, aby uzyskać dostęp do nazwy produktu, ProductName jest kluczem, a wartość jest PRODUCTNAME).

Należy pamiętać, że CustomActionData zawiera parametry, które zostaną przekazane do klasy instalatora. PRODUCTNAME to nazwa właściwości powiązana z kontrolką wprowadzania w oknie dialogowym interfejsu użytkownika, więc w twoim przypadku użytkownik powinien poprosić użytkownika o nazwę produktu w instalatorze. Etykieta to "Nazwa produktu", a odpowiednia właściwość powinna być ustawiona jako PRODUCTNAME (oczywiście można to zmienić, ale najważniejszą rzeczą, na którą należy zwrócić uwagę, jest to, że nazwa właściwości interfejsu musi być taka sama jak nazwa właściwości w CustomActionData) dla ten przykład działa.

teraz w zasięgu twojej klasy instalatora można uzyskać nazwę produktu, wykonując

public override void Install(IDictionary stateSaver) 
{ 
     // If you need to debug this installer class, uncomment the line below 
     //System.Diagnostics.Debugger.Break(); 

     string productName = Context.Parameters["ProductName"].Trim(); 

     string whateveryouwant = Context.Parameters["whateveryouwant"].Trim(); 
} 

notatkę i zawarte kod skomentował //System.Diagnostics.Debugger.Break(); które można komentować w tak, że można debugować klasę instalatora.

mam nadzieję, że to pomoże.

+0

Doskonała! Dziękuję Ci! –

+0

Wystąpiłem 2 problemy: (1) To nie działa (2) Podczas debugowania jest napisane: 'Nie można ocenić wyrażenia, ponieważ kod obecnej metody jest zoptymalizowany." –

+0

Nie jestem pewien, czym jest problem, nie widząc twojego kod lub o więcej szczegółów. błąd, który dostajesz, jest błędem, który zdarza się w wielu regionach. jeśli chcesz, możesz wysłać do mnie przyciętą wersję twojego projektu instalacyjnego i niech się obejrzy, czy mogę zobaczyć, co jest z nim nie tak. – Somedeveloper

Powiązane problemy