릴리스 빌드가 수행 될 때 웹 응용 프로그램을 자동으로 게시하려고합니다. _CopyWebApplication 대상을 사용하여이 작업을 수행하고 있습니다. .csproj 파일에 다음을 추가했습니다.Web.config 변환을 사용한 _CopyWebApplication
<!-- Automatically Publish in Release build. -->
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />
<Target Name="AfterBuild">
<RemoveDir Directories="$(ProjectDir)..\Output\MyWeb" ContinueOnError="true" />
<MSBuild Projects="MyWeb.csproj" Properties="Configuration=Release;WebProjectOutputDir=$(ProjectDir)..\Output\MyWeb;OutDir=$(ProjectDir)bin\" Targets="ResolveReferences;_CopyWebApplication" />
</Target>
이 문제는 하나의 문제와 함께 작동합니다. 이 출력과 Visual Studio에서 게시 메뉴 항목을 사용할 때 생성되는 출력의 차이점은 MS.Build 메서드를 사용할 때 Web.config 파일에 Web.Release.config 변환이 적용되지 않는다는 것입니다. 대신 Web.config, Web.Release.config 및 Web.Debug.config가 모두 복사됩니다.
모든 아이디어는 높이 평가됩니다.
WTF Microsoft? 이 Jabe를 공유해 주셔서 감사합니다. – jjxtra
나는 다른 프로젝트를 통해 참조 된 라이브러리를 복사하는 문제를 해결할 수있는 방법이 있습니까? 나는 msbuild ouput dir에 포함될 예정입니까? –
WebDeploy에서 /p : WebPublishMethod = FileSystem을 사용하고 pubxml 파일을 사용하여이 작업을 시도했습니다. 나는 그것을 작동시킬 수 없었다. 이 솔루션은 내가 찾은 최고의 방법입니다. 조언 한마디 : OutDir 속성을 설정하지 않아도 작동하지 않습니다. 이미 프로젝트 속성에 정의되어 있어도 명령 줄에 포함시켜야합니다. –