Czy istnieje alternatywny sposób dostępu do szczegółów sesji w odroczonej akcji niestandardowej?

Mam niestandardową akcję i muszę uzyskać poniżej wartości do kopiowania niektórych części z folderu instalacyjnego do folderu VS2010

  1. VS2010 directory path (VS2010DEVENV property)
  2. ścieżka instalacji (INSTALLLOCATION właściwość)

Aby dać wystarczająco dużo uprawnień, ustawiłem niestandardową akcję jako Execute='deferred' Impersonate='no'. Ale podczas uruchamiania Instalatora zapisał komunikat:

Nie można uzyskać dostępu do szczegółów sesji z niestandardowego działania nie natychmiastowego

Wygląda na to, że nie możemy uzyskać dostępu do właściwość w" odroczonym " działaniu niestandardowym (tj. session["VS2010DEVENV"])

Czy jest jakiś inny sposób, abym mógł odzyskać te wartości w razie potrzeby?

Author: BartoszKP, 2011-09-05

2 answers

To musi być pomocne. Zwróć szczególną uwagę na dół strony, instrukcję 2 kroków, jak przekazać wartości za pomocą CustomActionData .

Oto fragment:

Zapisanie wartości właściwości do skryptu instalacyjnego do użycia podczas odroczonego wykonania działania niestandardowego:

  1. Wstaw małą akcję niestandardową do sekwencji instalacji, która ustawia interesującą właściwość na właściwość o tej samej nazwie odroczony wykonanie niestandardowej akcji. Na przykład, jeśli klucz podstawowy dla odroczonego wykonania niestandardową akcją jest "MyAction" ustaw właściwość nazwane "MyAction" do właściwości X, którą należy odzyskać. Ty musi ustawić właściwość "MyAction" w sekwencji instalacji przed niestandardowa akcja "MyAction". Chociaż każdy rodzaj niestandardowych działań może ustawić dane kontekstowe, najprostszą metodą jest użycie właściwości przypisanie niestandardowej akcji(na przykład Niestandardowa Akcja typu 51).
  2. W tym czasie po przetworzeniu sekwencji instalacji, instalator zapisze wartość właściwości X do skryptu wykonawczego jako wartość właściwości CustomActionData.
 31
Author: Yan Sklyarenko,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-07-15 12:01:47

Dodatkowe szczegóły: wiele wartości właściwości może być przekazywanych za pomocą następującej składni w "akcji niestandardowej typu 51" (która jest w zasadzie tylko akcją niestandardową, która ustawia wartość właściwości):

PROPERTY1=Value1;PROPERTY2=Value2;PROPERTY3=...

Wartości mogą być pobierane z niestandardowej akcji w następujący sposób:

string prop1 = session.CustomActionData["PROPERTY1"];
string prop2 = session.CustomActionData["PROPERTY2"];

Oto przykład, który ustawia wartości właściwości dla niestandardowej akcji o ID "MyCustomAction":

<CustomAction
  Id="SetCustomActionPropertyValues"
  Property="MyCustomAction"
  Value="INSTALLDIR=[INSTALLDIR];EXECUTABLE=[#MyExecutableFile]" />

(przeczytaj Ten artykuł MSDN aby uzyskać więcej szczegółów na temat sformatowanej składni, która w ten przykład służy do pobrania lokalizacji instalacji pliku o ID "MyExecutableFile")

 13
Author: bernhof,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-05-19 18:56:30