Em resposta à outra pergunta -
"existe alguma maneira de aplicar isso no projeto Visual Studio? Em um ambiente de vários desenvolvedores, se alguém verificar o código em sua máquina, o IIS Express local não seria configurado com o diretório virtual e causaria erros de tempo de execução. não é? "
Nunca encontrei uma resposta consistente para isso em nenhum lugar, mas descobri que você poderia fazer isso com um evento pós-compilação usando a tarefa XmlPoke no arquivo de projeto do site -
<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>
Você pode usar essa técnica para apontar qualquer coisa no arquivo antes do IISExpress iniciar. Isso permitiria forçar inicialmente um arquivo applicationHost.config para o GIT (supondo que ele seja ignorado pelo gitignore) e, posteriormente, apontar todos os caminhos no momento da criação. O GIT ignorará quaisquer alterações no arquivo, agora é fácil compartilhá-las.
Em resposta à outra pergunta sobre como adicionar outros aplicativos em um site:
Você pode criar o site no arquivo de hosts do aplicativo, exatamente como o do seu servidor. Por exemplo:
<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>
Em seguida, use a técnica acima para alterar os locais da pasta no momento da criação.
applicationHost.config
arquivo está na raiz do projeto:${PROJECT}\.vs\config\applicationHost.config
.