Trả lời cho câu hỏi tiếp theo -
"có cách nào để áp dụng điều này trong dự án Visual Studio không? Trong môi trường nhiều nhà phát triển, nếu người khác kiểm tra mã trên máy của họ, thì IIS Express cục bộ của họ sẽ không được cấu hình với thư mục ảo và gây ra lỗi thời gian chạy. phải không? "
Tôi chưa bao giờ tìm thấy câu trả lời nhất quán cho vấn đề này ở bất cứ đâu nhưng sau đó đã tìm ra bạn có thể làm điều đó với một sự kiện xây dựng bài đăng bằng cách sử dụng tác vụ XmlPoke trong tệp dự án cho trang 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>
Bạn có thể sử dụng kỹ thuật này để bổ sung bất cứ thứ gì trong tệp trước khi IISExpress khởi động. Điều này ban đầu sẽ cho phép bạn buộc một tệp applicationhost.config vào GIT (giả sử nó bị bỏ qua bởi gitignore) sau đó sau đó lặp lại tất cả các đường dẫn khi xây dựng. GIT sẽ bỏ qua mọi thay đổi đối với tệp để giờ đây dễ dàng chia sẻ chúng xung quanh.
Để trả lời cho câu hỏi xa hơn về việc thêm các ứng dụng khác trong một trang web:
Bạn có thể tạo trang web trong ứng dụng lưu trữ tệp giống như trang trên máy chủ của bạn. Ví dụ:
<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>
Sau đó sử dụng kỹ thuật trên để thay đổi vị trí thư mục khi xây dựng.
applicationHost.config
tập tin nằm dưới gốc dự án :${PROJECT}\.vs\config\applicationHost.config
.