2012-02-17 2 views
3

CMS가 올바르게 작동하려면 www 루트 아래의 가상 디렉터리에 배포해야 관리 할 웹 사이트에 액세스 할 수 있습니다 (참고 : CMS = N2CMS). Visual Studio 'Publish To Web'을 사용할 때 모두 괜찮습니다. 그러나 msbuild 명령 줄을 통해 패키지를 생성하고 해당 버전을 게시하면 가상 디렉터리가 가상 응용 프로그램으로 변환됩니다.배포시 MsDeploy 가상 디렉터리가 가상 응용 프로그램으로 변환됩니다.

내 원격 웹 서버에 IIS 웹 응용 프로그램 ('exampleapp') 아래에 가상 디렉터리 '/ n2'가 있고 패키지/게시 웹 설정 (IIS 웹 사이트/응용 프로그램 이름)에서이 경로를 구성했습니다. 대상 서버)를 Visual Studio에서 내 프로젝트 내에 저장하십시오.

는 배포 패키지를 생성하려면 :

msbuild.exe myproject.csproj /T:Package 

이 실행 (표준은 MSBuild/msdeploy의 대상) MsDeploy 명령 줄 배치 파일과 함께 내 코드의 압축 된 패키지를 생성합니다.

<?xml version="1.0" encoding="utf-8"?> 
<parameters> 
    <setParameter name="IIS Web Application Name" value="exampleapp/n2" /> 
</parameters> 

생성 된 SourceManifest.xml 다음

<?xml version="1.0" encoding="utf-8"?> 
<sitemanifest> 
    <IisApp path="C:\...shortened-path...\PackageTmp" managedRuntimeVersion="v4.0" /> 
    <setAcl path="C:\...shortened-path...\PackageTmp" setAclResourceType="Directory" /> 
    <setAcl path="C:\...shortened-path...\PackageTmp" setAclUser="anonymousAuthenticationUser" setAclResourceType="Directory" /> 
</sitemanifest> 

누구는 가상 디렉터리로 변환됩니다 왜 단서가 포함되어

는 생성 된 SetParameters.xml 다음과 같은 포함 가상 응용 프로그램? Microsoft.Web.Publishing.targets 파일에서

답변

4

true로 DeployAsIisApp 기본값 :

< DeployAsIisApp 조건 = " '$ (DeployAsIisApp)'== '' '> 사실 </DeployAsIisApp >

이를 프로젝트 파일의 적절한 PropertyGroup 요소 또는 프로젝트 폴더의 .wpp.targets 파일에 추가하여이를 false로 대체 할 수 있어야합니다. IIS의 응용 프로그램으로 표시하지 않고 가상 디렉터리에 웹 응용 프로그램 프로젝트 (WAP)을 게시 할 때 프로젝트 파일을 편집에, 나는 (csproj)에 배포 다음 매개 변수 조합으로 성공을 가지고

http://msdn.microsoft.com/en-us/library/ff398069.aspx

+0

흠 DeployAsIisApp를 false로 설정하면 작동하지만 이제는 MsDeploy가 지정된 배포 디렉토리가 실제로 다른 곳에있는 가상 디렉터리라는 '구하지 않음'을 얻지 못합니다. ( 오류 : 'setAcl'공급자가 실제 경로와 함께 사용되는 경우 'setAclUser'설정 값을 지정해야합니다 ( ). –

+1

< IncludeSetAclProviderOnDestination 조건 = " '$ (IncludeSetAclProviderOnDestination) ==' '"> True </IncludeSetAclProviderOnDestination >을 대상 파일에 넣었으므로이 설정을 해제 할 수 있습니다. – tdykstra

+0

내 .csproj에서 IncludeSetAclProviderOnDestination을 false로 설정하면 오류가 사라집니다. 그러나 오류는 기본적으로 DeployAsIisApp를 False로 설정하면 SetParameters.xml의 "IIS 웹 응용 프로그램 이름"에 (로컬) 파일 경로 (서버에는 존재하지 않음)가 붙습니다.이것을 서버 경로로 수정하면 IncludeSetAclProviderOnDestination = False로 문제를 해결할 수 있습니다. –

관련 문제