Sonraki soruya cevap olarak -
"Bunu Visual Studio projesinde uygulamak için bir yol var mı? Çok geliştiricili bir ortamda, başka biri kendi makinesindeki kodu kontrol ederse, yerel IIS Express sanal dizinle yapılandırılmaz ve çalışma zamanı hatalarına neden olmaz değil mi? "
Buna hiçbir zaman tutarlı bir cevap bulamadım ama sonra bunu web sitesi için proje dosyasındaki XmlPoke görevini kullanarak bir post build olayı ile yapabileceğinizi anladım -
<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>
IISExpress başlamadan önce dosyadaki herhangi bir şeyi yeniden işaretlemek için bu tekniği kullanabilirsiniz. Bu, başlangıçta bir applicationHost.config dosyasını GIT'e zorlamanıza (gitignore tarafından yok sayıldığını varsayarak) ve ardından derleme zamanında tüm yolları yeniden işaretlemenize izin verir. GIT, dosyadaki herhangi bir değişikliği göz ardı eder, böylece bunları paylaşmak artık çok kolay.
Bir sitenin altına başka uygulamaların eklenmesi hakkındaki diğer soruya yanıt olarak:
Siteyi, sunucunuzdakine benzer şekilde uygulama ana bilgisayar dosyanızda oluşturabilirsiniz. Örneğin:
<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>
Ardından, derleme zamanında klasör konumlarını değiştirmek için yukarıdaki tekniği kullanın.
applicationHost.config
Dosya proje kökü altındadır:${PROJECT}\.vs\config\applicationHost.config
.