추가 질문에 대한 답변으로-
"어쨌든 Visual Studio 프로젝트 내에서 이것을 적용 할 수 있습니까? 다중 개발자 환경에서 다른 사람이 자신의 컴퓨터에서 코드를 확인하면 로컬 IIS Express가 가상 디렉터리로 구성되지 않아 런타임 오류가 발생합니다. 그렇지? "
나는 이것에 대한 일관된 대답을 어디서도 찾지 못했지만 웹 사이트의 프로젝트 파일에서 XmlPoke 작업을 사용하여 포스트 빌드 이벤트로 할 수 있음을 알았습니다.
<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가 시작되기 전에 파일의 모든 항목을 다시 지정할 수 있습니다. 이렇게하면 처음에 applicationHost.config 파일을 GIT에 강제로 넣은 다음 (gitignore에서 무시한다고 가정) 이후 빌드시 모든 경로를 다시 가리킬 수 있습니다. GIT는 파일의 모든 변경 사항을 무시하므로 이제 쉽게 공유 할 수 있습니다.
한 사이트 아래에 다른 응용 프로그램을 추가하는 것에 대한 추가 질문에 대한 답변 :
서버에있는 것과 마찬가지로 응용 프로그램 호스트 파일에 사이트를 만들 수 있습니다. 예를 들면 :
<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>
그런 다음 위의 기술을 사용하여 빌드시 폴더 위치를 변경하십시오.
applicationHost.config
파일은 프로젝트 루트 아래 :${PROJECT}\.vs\config\applicationHost.config
.