2010-08-02 5 views
1

J'ai une classe d'installateur que j'utilise pour effectuer un traitement sur l'application après son installation initiale.Asp.net Web Setup Project - Récupère le nom d'hôte sélectionné pour la classe d'installateur

Dans l'installateur, j'ai une boîte de dialogue personnalisée qui demande un nom d'utilisateur et un mot de passe. Ceci est accessible dans ma classe d'installation avec

Me.Context.Parameters("username") 

Après avoir défini comme CustomActionData /username="[TXTUSERNAME]"

Tout cela est bien. La première boîte de dialogue d'un projet de configuration Web permet à l'utilisateur de sélectionner un site Web IIS à partir d'une liste déroulante et de définir un répertoire virtuel si nécessaire. J'ai besoin d'obtenir le nom d'hôte sélectionné, mais jusqu'à présent, je n'ai trouvé aucune référence dans une documentation.

J'ai essayé des choses comme:

Me.Context.Parameters("targetURL") 
Me.Context.Parameters("TARGETSITE") 

, mais aucun d'entre eux quoi que ce soit sortie ..

Toutes les idées?

+0

Vous voulez dire que vous voulez trouver une URL qui résout à la machine sur laquelle le programme d'installation est actuellement en cours? Ou avez-vous besoin de trouver le nom de la machine pour pouvoir construire une URL par exemple? http: // monserveur: 8080/mySite/myVDir? – fletcher

+0

Dans un projet de configuration Web, sous CustomActionData, vous disposez d'une série de paramètres auxquels vous pouvez accéder dans votre classe d'installation personnalisée. Par exemple j'ai une boîte de dialogue personnalisée avec 2 zones de texte et je les utilise pour obtenir le nom d'utilisateur et le mot de passe des utilisateurs. Je peux y accéder dans ma classe d'installateur en utilisant Me.Context.Parameters ("nom d'utilisateur"). Dans un projet de configuration Web, vous installez l'application dans un site Web IIS. Donc, où le site Web IIS que vous choisissez pointe (répertoire sage), il va l'installer sur ce chemin. Je veux le nom d'hôte du site Web IIS choisi afin que je puisse faire une installation pratique au moment de l'installation. – Markive

+0

Selon la documentation, il devrait être quelque chose comme: Me.Context.Parameters ("targetURL") et/targetURL = "[TARGETURL]" mais cela ne fonctionne jamais pour moi .. – Markive

Répondre

1

est-il donc un peu proessing après l'installation ou non? Vous avez dit que c'était dans votre question (première ligne) donc nous supposons qu'il y a quelque chose qui tourne sur le disque :-)

Par exemple, si vous dérivez de System.Configuration.Install.Installer vous pouvez l'appeler après installez via installutil et passez tout type d'args que vous voulez - ce qui signifie que vous êtes libre de MSI à ce stade.

Vérifiez également ce http://www.codeproject.com/KB/install/command_lines_setups.aspx Il y a du code source etc. montrant comment passer des arguments de ligne de commande complètement arbitraires à MSI. Il répertorie également des tonnes de propriétés disponibles - vous pouvez en aimer au moins une :-)

+0

Merci pour l'aide de tout le monde, c'est le plus proche de la réponse. Ce lien semble vraiment intéressant. Ma classe d'installateur personnalisée est exécutée à l'étape de validation, donc avant que le MSI ne soit complètement terminé, mais la plus grande partie de la routine d'installation, comme la copie de fichiers, a été complétée. Je pense que c'est juste l'heure normale d'invoquer une classe d'installateur. A ce stade, je n'ai pas été en mesure d'obtenir la valeur Hostname du site Web IIS "TARGETURL" etc .. cela m'a donné un bon lien pour continuer .. Malheureusement, je suis passé à autre chose pour le le temps étant .. Encore merci! – Markive

0

essayer

Response.Write(HttpContext.Current.Request.ServerVariables["HTTP_HOST"] 

ou

Response.Write(Request.Url.Host.ToString() 

Je ne sais pas si ce que vous recherchez ..

+0

Non c'est pour l'installateur de mon application web en utilisant un projet d'installation web.L'application n'a même pas encore été installée sur le site Web d'IIS. – Markive

0

J'ai créé un exemple de projet d'installation Web et ouvert le MSI dans ORCA éditeur.

peut être « TARGETVDIR » pourrait être de toute utilisation