19

Visual Studio 2012 및 게시 기능을 사용하고 있습니다. 내 응용 프로그램을 개발 서버에 배포하는 게시 프로파일을 만들었으며 내 컴퓨터에서 vs2012에서 실행하면 훌륭하게 작동합니다. 여기 내 문제가있다. 개발 서버에서 TeamCity를 설치했고 빌드가 완료된 후 게시를 시작하려고합니다. 그래서 다음과 같습니다 간단한 빌드 단계를 만든 :TeamCity에서 vs2012 솔루션 게시

Build file path: .\src\Solution.sln 
Targets: Rebuild 
Command line parameters: /p:DeployOnBuild=true;PublishProfile=Ci 

이 단계 나는 다음과 같은 오류 얻을 실행 :

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\Web\Microsoft.Web.Publishing.targets(4377, 5): error ERROR_USER_NOT_ADMIN: Web deployment task failed. 
(Connected to 'dev.domain.com' using the Web Deployment Agent Service, but could not authorize. Make sure you are an administrator on 'dev.domain.com'. 

CI를 프로파일 내가 실행할 때 작동하는 사용자 이름과 암호를 포함을 내 컴퓨터에서 Visual Studio에서 게시. 빌드 단계에서 사용자 이름과 암호를 매개 변수로 전달하려고 시도했지만 동일한 결과가 나타납니다. 이 기능을 사용하려면 관리자 계정으로 TeamCity 서비스를 실행해야합니까? 모든 제안을 부탁드립니다.

답변

12

나는 이것을 http://sedodream.com/2013/01/06/CommandLineWebProjectPublishing.aspx에 블로그에 올렸습니다.

당신은 꽤 가까웠습니다. 나는 그 격차를 좁히기를 바랍니다.

VS 게시 대화 상자에 사용자 이름과 암호가 지정되어 있지만 올바른 암호는 .pubxml 파일에 저장되지 않았습니다. 현재 .pubxml.user 파일에 저장되고 있으며 해당 파일은 명령 줄 시나리오에 전혀 사용되지 않습니다. 그 때문에 재산을 통과해야합니다. 웹 서버는 또한 /p:AllowUntrustedCertificate=true에 전달해야 신뢰할 수있는 인증서 표시가없는 경우 따라서 귀하의 경우는

msbuild .\src\solution.sln /p:DeployOnBuild=true /p:PublishProfile=ci /p:Password=<insert-password> 

을해야합니다.

약간의 추가 사항은 문제와 직접 관련이 없지만 나중에 볼 수있는 다른 도움이 될 수 있습니다. .csproj/.vbproj 파일 (및 .sln 파일이 사용되는 일부 시나리오의 경우 일 가능성이 있음)을 빌드하는 경우 /p:VisualStudioVersion=11.0 속성을 전달해야합니다. 이 블로그에 대한 자세한 내용은 내 블로그 http://sedodream.com/2012/08/19/VisualStudioProjectCompatabilityAndVisualStudioVersion.aspx