Sebagai jawaban untuk pertanyaan selanjutnya -
"apakah ada cara untuk menerapkan ini dalam proyek Visual Studio? Dalam lingkungan multi-pengembang, jika orang lain memeriksa kode di mesin mereka, maka IIS Express lokal mereka tidak akan dikonfigurasi dengan direktori virtual dan menyebabkan kesalahan runtime tidak akan bukan? "
Saya tidak pernah menemukan jawaban yang konsisten untuk ini di mana pun, tetapi kemudian menemukan bahwa Anda dapat melakukannya dengan acara pasca pembuatan menggunakan tugas XmlPoke di file proyek untuk situs 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>
Anda dapat menggunakan teknik ini untuk menunjuk kembali apa pun di file sebelum IISExpress dijalankan. Ini akan memungkinkan Anda untuk awalnya memaksa file applicationHost.config ke GIT (dengan asumsi itu diabaikan oleh gitignore) lalu kemudian menunjuk kembali semua jalur pada waktu pembuatan. GIT akan mengabaikan setiap perubahan pada file sehingga sekarang mudah untuk membagikannya.
Sebagai jawaban untuk pertanyaan lebih lanjut tentang menambahkan aplikasi lain di bawah satu situs:
Anda dapat membuat situs di file host aplikasi Anda seperti yang ada di server Anda. Sebagai contoh:
<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>
Kemudian gunakan teknik di atas untuk mengubah lokasi folder pada waktu pembuatan.
applicationHost.config
file di bawah akar proyek:${PROJECT}\.vs\config\applicationHost.config
.