J'ai un projet de configuration Web qui affiche par défaut le répertoire virtuel dans l'écran d'installation de la zone de texte. Je souhaite que le nom du répertoire virtuel ne puisse pas être édité par l'utilisateur et toujours par défaut celui que j'ai installé dans mon msi. Comment cela peut il etre accompli?Répertoire virtuel dans le projet de configuration Web
Répondre
Passer au Wix et d'utiliser leur Web Extensions
Je regarde le projet websetup car je ne suis pas intéressé par l'open source car l'org ne le permet pas. – chugh97
Wix est écrit et maintenu par Microsoft, il était supposé faire partie de Visual Studio 10. De nombreuses versions (y compris la configuration d'Office 2007) utilisent Wix sans aucun problème. –
Sélectionnez votre projet d'installation, Affichage> Editeurs> Interface utilisateur, sélectionnez les boîtes de dialogue d'adresses d'installation, et les supprimer.
EDIT:
Comme le souligne Shay sur, les utilisateurs peuvent passer outre l'installation par défaut emplacement de la ligne de commande. Pour remplacer cela, vous devez définir la propriété TARGETDIR dans votre InstallExecuteSequence. Malheureusement, vous ne pouvez pas modifier cette séquence à partir de Visual Studio, vous devez utiliser Orca:
- Créez votre projet d'installation.
- Ouvrez le fichier MSI à partir d'Orca.
- Créez une nouvelle action personnalisée de Type 51 (propriété set) avec la source "TARGETDIR" (sans guillemets), Cible de votre dossier de destination et un nom unique pour Action (la convention consiste à utiliser un GUID avec trait de soulignement initial). Créez une nouvelle ligne dans InstallExecuteSequence avec votre nom unique pour Action, "NOT Installed" pour Condition, et un numéro de séquence avant l'utilisation de TARGETDIR (750 était la première utilisation dans l'échantillon que j'ai fait, donc j'ai utilisé une séquence de 555).
la suppression de l'interface utilisateur permettrait toujours à l'utilisateur de modifier le répertoire d'installation via la ligne de commande. –
Org n'autorise pas l'open source ou la source ouverte GPL.
Solutions: * modifier l'action personnalisée (clic droit> Affichage> action personnalisée) pour fixer le répertoire virtuel et le chemin Changer la CustomActionData:
/targetdir="[TARGETDIR]\" /connectionstring="[CONNECTIONSTRING]" /targetvdir="[TARGETVDIR]" /targetsite="[TARGETSITE]"
Pour:
/targetdir="[TARGETDIR]\" /connectionstring="[CONNECTIONSTRING]" /targetvdir="FIXED_NAME" /targetsite="[TARGETSITE]"
Vous peut simplement supprimer l'adresse d'installation de l'interface utilisateur et configurer un composant qui transmet les informations à l'installation personnalisée
- Ecrire un wrapper sur msbuild avec msbuildtasks
Afin d'obtenir le répertoire virtuel en utilisant Context.Parameters
- Ajouter une action personnalisée pour installer le noeud (utilisez cette url si vous voulez savoir comment pour ajouter des actions personnalisées)
- Cliquez avec le bouton droit de la souris sur l'action personnalisée et sélectionnez la fenêtre des propriétés.
- Pour la propriété CustomActionsData définie/targetvdir = "[TARGETVDIR]".
- Maintenant, dans votre classe d'installateur, vous pouvez obtenir le nom du répertoire virtuel par Context.Parameters ["targetvdir"]. J'espère que cela vous a aidé :)
Si vous ne voulez pas que l'utilisateur modifie le répertoire virtuel, vous pouvez simplement supprimer la boîte de dialogue "Adresse d'installation" de l'interface utilisateur.
- Le projet d'installation Right Click et sélectionnent "User Interface".
- Développez le nœud "Démarrer".
- Faites un clic droit sur "Adresse d'installation".
- Sélectionnez « Supprimer »
Si vous voulez différents paramètres pour le site Web, le répertoire virtuel, pool d'applications qui est normalement sélectionnée par la boîte de dialogue d'adresse de l'installation, vous pouvez remplacer avec une action personnalisée que d'autres ont décrit.
Cependant, dans mes actions expérience personnalisées ne permettent pas à la mise en défaut que l'utilisateur peut changer, car ils exécutent Après les boîtes de dialogue qui demandent l'entrée d'utilisateur.
La méthode la plus simple pour définir certaines valeurs par défaut que l'utilisateur peut remplacer si nécessaire dans une boîte de dialogue est la suivante.
- Enlever la page d'accueil.
- Ajoutez une boîte de dialogue Textboxes (par exemple, "Textboxes (A)")
- Modifiez les propriétés visibles pour toutes les zones de texte à false afin qu'aucune zone de texte ne s'affiche.
- Modifiez la propriété BannerBitmap et BodyText afin qu'elle ressemble à une page de bienvenue .
- Définissez les propriétés nécessaires que vous souhaitez remplacer dans le menu « Edition *** n < > propriété » et définissez la valeur par défaut dans le menu « Edition <n> *** Valeur ».
Les propriétés les plus utiles (IMHO) sont.
TARGETDIR - Où les fichiers doivent être copiés.
TARGETVDIR - Répertoire virtuel à créer sur le site spécifié.
TARGETAPPPOOL - Le pool d'applications à utiliser (REMARQUE: Il doit exister, il ne sera pas créé)
TargetSite - Le site où le répertoire virtuel doit être créé (NOTE: Ceci est la valeur métabase pour le site web ... Par exemple: "/ LM/W3svc/2" Notez également que le site doit exister).
La liste complète des propriétés de l'installateur se trouve here. Si vous voulez vraiment mieux contrôler l'installation d'IIS, je vous suggère de changer votre projet en projet Windows Installer standard et de créer des actions d'installation personnalisées afin de pouvoir créer des AppPools par programme. Un bon endroit pour commencer à comprendre par programmation ces choses est here.
La principale raison de cette façon de faire est que des actions personnalisées fonctionnent après incitant mais la piscine d'applications et de sites Web doivent être créés avant l'installateur peut inviter.
Cette note à propos de TARGETSITE étant une valeur de métabase a été une bouée de sauvetage - merci! – ladenedge
Oui, j'ai cherché des heures pour TARGETSITE! À votre santé! – Markive
à ma connaissance, vous êtes la seule personne sur Internet à documenter que TARGETAPPPOOL correspond au pool d'applications. TY –
Ça sonne bien en théorie, mais je peux dire que ça ne marche pas, du moins pas pour le réglage d'AppPool. J'ai une action personnalisée pour définir l'apppool (qui fonctionne d'ailleurs correctement lorsque le programme d'installation est construit avec VS2005) dans mon projet d'installation Web vs2008.
DirectoryEntry IISVdir = new DirectoryEntry(String.Format("IIS://{0}{1}/{2}", strServer, strRootSubPath, Vdir));
IISVdir.Properties["AppPoolId"].Value = appPool;
IISVdir.CommitChanges();
Le programme d'installation qui fonctionne sans dialogue (supprimé l'adresse de l'installation de l'interface utilisateur nœud), mais la AppPool définie sur le répertoire virtuel se termine par être DefaultAppPool.
D'autres actions personnalisées dans ma classe d'assistance s'exécutent et fonctionnent.
Il doit donc y avoir d'autres incantations magiques nécessaires.
Merci.
cela semble fonctionner à partir de la ligne de commande: XYZZX.msi/qr/TARGETAPPPOOL = "MyAppPoolName" Est-il possible de définir le paramètre TARGETAPPPOOL dans une action personnalisée? –
Ok, puisque l'option de ligne de commande a fonctionné, peut-être cela: si (this.Context.Parameters.ContainsKey ("TARGETAPPPOOL")) \t this.Context.Parameters [ "TARGETAPPPOOL"] = appPool; sinon { \t this.Context.Parameters.Add ("TARGETAPPPOOL", appPool); Nope - toujours défini sur DefaultAppPool –
Je viens d'avoir un problème similaire. Je pouvais seulement le résoudre en obtenant par l'action personnalisée pour courir à l'étape Commit, au lieu de l'étape d'installation. –
Solution Lo-tech: éditez le fichier vdproj dans notepad ++ pour définir le répertoire virtuel et supprimez la boîte de dialogue Adresse d'installation de l'éditeur d'interface utilisateur.
Je me demande pourquoi personne d'autre n'a répondu à cette question. Simple et facile.Merci beaucoup. –
- 1. Répertoire virtuel dans le projet ASP.NET
- 2. Fichier de configuration IIS dans le répertoire virtuel
- 3. Répertoire virtuel dans le rôle Web Azure
- 4. Configuration du répertoire virtuel IIS 6.0
- 5. Configuration CruiseControl.net répertoire du projet
- 6. Recompiler le projet Web ASP.NET sans lui donner de répertoire virtuel
- 7. Configuration du répertoire virtuel lors de l'utilisation d'IIS pour le débogage ASP.NET MVC
- 8. Répertoire virtuel ASP.NET _within_ VS2008
- 9. sharepoint - déployer un service Web sans créer de répertoire virtuel
- 10. Déplacement de services Web vers un répertoire virtuel
- 11. Reporting Services Répertoire virtuel
- 12. Modifier Web.config pendant/après le projet de configuration Web
- 13. Exécution du site de production Sitecore dans un répertoire virtuel
- 14. Partage de la session ASP sur le répertoire virtuel
- 15. répertoire virtuel IIS et les chemins de répertoire ASP.NET
- 16. Comment modifier le nom du répertoire virtuel par défaut lors d'une installation de service Web?
- 17. Déploiement sur un site Web ou un répertoire virtuel
- 18. httpHandler fonctionne pour le répertoire virtuel mais pas le site Web configuré de manière similaire
- 19. combiner des répertoires dans un répertoire virtuel
- 20. Déplacer l'application Web MVC Beta vers le répertoire virtuel supprime tout/ressources de contenu
- 21. Mapper le répertoire virtuel à un autre serveur web dans apache
- 22. Définir le répertoire intermédiaire dans C# Projet
- 23. Icône de raccourci sur le bureau n'apparaissant pas dans le projet de configuration Web
- 24. Web.config dans un répertoire virtuel ... permission refusée sur le répertoire racine web.config?
- 25. Placer les fichiers du sous-dossier de projet dans le répertoire de sortie
- 26. Obtenir le chemin du répertoire Web iis dans VB.net en dehors d'un projet Web
- 27. Authentification automatique d'un répertoire virtuel dans IIS 6.0
- 28. Puis-je automatiser la création d'une application Web .NET/répertoire virtuel dans IIS 5?
- 29. Où mon utilisateur a-t-il installé mon projet de configuration Web?
- 30. Comment modifier le chemin d'accès local du répertoire virtuel pour une application Web MOSS?
De même, si cela ne peut pas être réalisé, comment puis-je obtenir la valeur du répertoire virtuel modifié en utilisant Context.Parameters []? – chugh97