En réponse à la question complémentaire -
"Y a-t-il un moyen de l'appliquer au sein du projet Visual Studio ? Dans un environnement multi-développeurs, si quelqu'un d'autre vérifie le code sur sa machine, alors son IIS Express local ne serait pas configuré avec le répertoire virtuel et provoquerait des erreurs d'exécution, n'est-ce pas ?".
Je n'ai jamais trouvé de réponse cohérente à cette question nulle part, mais j'ai découvert qu'il était possible de le faire avec un événement post-construction en utilisant la tâche XmlPoke dans le fichier de projet du site Web.
<Target Name="AfterBuild">
<!-- Get the local directory root (and strip off the website name) -->
<PropertyGroup>
<LocalTarget>$(ProjectDir.Replace('MyWebSite\', ''))</LocalTarget>
</PropertyGroup>
<!-- Now change the virtual directories as you need to -->
<XmlPoke XmlInputPath="..\..\Source\Assemblies\MyWebSite\.vs\MyWebSite\config\applicationhost.config"
Value="$(LocalTarget)AnotherVirtual"
Query="/configuration/system.applicationHost/sites/site[@name='MyWebSite']/application[@path='/']/virtualDirectory[@path='/AnotherVirtual']/@physicalPath"/>
</Target>
Vous pouvez utiliser cette technique pour repointer n'importe quel élément du fichier avant le démarrage de IISExpress. Cela vous permettrait de forcer initialement un fichier applicationHost.config dans GIT (en supposant qu'il soit ignoré par gitignore), puis de repointer tous les chemins au moment de la construction. GIT ignorera toutes les modifications apportées au fichier, il est donc maintenant facile de les partager.
Pour répondre à une autre question concernant l'ajout d'autres applications sur un même site :
Vous pouvez créer le site dans le fichier hosts de votre application, tout comme celui de votre serveur. Par exemple :
<site name="MyWebSite" id="2">
<application path="/" applicationPool="Clr4IntegratedAppPool">
<virtualDirectory path="/" physicalPath="C:\GIT\MyWebSite\Main" />
<virtualDirectory path="/SharedContent" physicalPath="C:\GIT\SharedContent" />
<virtualDirectory path="/ServerResources" physicalPath="C:\GIT\ServerResources" />
</application>
<application path="/AppSubSite" applicationPool="Clr4IntegratedAppPool">
<virtualDirectory path="/" physicalPath="C:\GIT\AppSubSite\" />
<virtualDirectory path="/SharedContent" physicalPath="C:\GIT\SharedContent" />
<virtualDirectory path="/ServerResources" physicalPath="C:\GIT\ServerResources" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:4076:localhost" />
</bindings>
</site>
Utilisez ensuite la technique ci-dessus pour modifier l'emplacement des dossiers au moment de la construction.
6 votes
Pour Visual Studio 2015, mikedice417.wordpress.com/2015/09/13/… travaillé. Le site
applicationHost.config
se trouve sous la racine du projet :${PROJECT}\.vs\config\applicationHost.config
.0 votes
Il existe ici une réponse qui pourrait vous aider : https://stackoverflow.com/a/46260607/2472664