En respuesta a la siguiente pregunta:
"¿hay alguna forma de aplicar esto dentro del proyecto de Visual Studio? En un entorno de desarrolladores múltiples, si alguien más revisa el código en su máquina, entonces su IIS Express local no se configuraría con el directorio virtual y causaría errores de tiempo de ejecución ¿no?
Nunca encontré una respuesta coherente a esto en ningún lado, pero luego descubrí que podría hacerlo con un evento posterior a la compilación utilizando la tarea XmlPoke en el archivo del proyecto para el sitio 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>
Puede utilizar esta técnica para volver a señalar cualquier cosa en el archivo antes de que IISExpress se inicie. Esto le permitiría forzar inicialmente un archivo applicationHost.config en GIT (suponiendo que gitignore lo ignore) y luego volver a señalar todas las rutas en el momento de la compilación. GIT ignorará cualquier cambio en el archivo, por lo que ahora es fácil compartirlos.
En respuesta a la siguiente pregunta sobre cómo agregar otras aplicaciones en un sitio:
Puede crear el sitio en el archivo de hosts de la aplicación como el de su servidor. Por ejemplo:
<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>
Luego use la técnica anterior para cambiar las ubicaciones de las carpetas en el momento de la compilación.
applicationHost.config
archivo se encuentra bajo la raíz del proyecto:${PROJECT}\.vs\config\applicationHost.config
.