VS 2012에서 웹 배포 게시 작업 전에만 PowerShell 스크립트를 실행하는 방법은 무엇입니까?
현재 Visual Studio 2012를 사용하여 웹 프로젝트에서 빌드 후 이벤트를 다음과 같이 구성했습니다.
기본적으로 PowerShell 스크립트를 호출하여 모든 .cs 파일에 저작권 고지를 추가합니다.
원격 서버에 웹 앱을 게시하기 전에만 이 파워셸 스크립트를 실행합니다.그렇게 함으로써 프로젝트 디버그가 필요할 때마다 지연되는 일은 없을 것입니다.이것을 달성할 수 있는 방법을 알고 계십니까?
Sayed의 답변에 따라 특정 게시 프로파일을 사용자 정의하고 다음을 추가했습니다.
<PipelineDependsOn>
CustomBeforePublish;
$(PipelineDependsOn);
</PipelineDependsOn>
</PropertyGroup>
<Target Name="CustomBeforePublish">
<Message Text="******* CustomBeforePublish *******" Importance="high" />
<Exec Command="powershell.exe -file "$(ProjectDir)\Copyright.ps1"" />
</Target>
이전에 정의하는 방법에 따라 다르지만 아래는 하나의 기술입니다.
VS2012를 사용하여 게시 프로파일을 생성하면 Properties\에 .pubxml 파일이 생성됩니다.프로필 폴더(내 프로젝트) 게시VB에 대한 프로파일 게시).이 파일들은 MSBuild 파일이며 게시 프로세스를 사용자 정의하도록 편집할 수 있습니다.이 경우 게시가 실제로 발생하기 전에 게시 프로세스에 대상을 주입할 수 있습니다.아래와 같이 PipelineDependsOn 속성을 확장하여 이를 수행할 수 있습니다.
<PropertyGroup>
<PipelineDependsOn>
CustomBeforePublish;
$(PipelineDependsOn);
</PipelineDependsOn>
</PropertyGroup>
<Target Name="CustomBeforePublish">
<Message Text="********************************** CustomBeforePublish ***********************************" Importance="high"/>
</Target>
참고로 .wpp.targets의 커스터마이징과 관련된 FYI는 VS2010을 위한 유일한 기술이었습니다.대부분의 경우에 대해 .pubxml 파일을 사용자 지정하고 주어진 프로젝트의 모든 게시를 사용자 지정하려면 .wpp.targets 파일만 생성해야 합니다.
Sayed
의 대답이 문제를 해결합니다.하지만, 저는 완전하게 작동하는 답변을 제공하려고 생각했습니다(Visual Studio 2017에서의 테스트).
<PropertyGroup>
<PipelineDependsOn>
PreBuildScript;
$(PipelineDependsOn);
</PipelineDependsOn>
</PropertyGroup>
<Target Name="PreBuildScript">
<Message Text="Executing prebuild script" Importance="high"/>
<Exec Command="powershell.exe -file "$(ProjectDir)\InnerFolder\script.ps1"" />
</Target>
참고: 이 작업은 미리보기 작업과 실제 게시 작업 모두에 대해 실행되므로 실제 게시 전에 사전 게시 오류를 확인할 수 있습니다.
다음을 선언합니다.ProjectName.wpp.targets
웹 응용 프로그램의 루트에 파일을 저장합니다.
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<BeforeAddContentPathToSourceManifest>
$(BeforeAddContentPathToSourceManifest);
AddCopyright;
</BeforeAddContentPathToSourceManifest>
</PropertyGroup>
<Target Name="AddCopyright">
<!-- I recommend passing in $(_MSDeployDirPath_FullPath) to your script
as the base path to search to avoid having to perform a VCS rollback
(files are copied there before the deployment)
-->
<Exec Command="powershell.exe -file "$(SolutionDir)Copyright.ps1" "$(_MSDeployDirPath_FullPath)"" />
</Target>
</Project>
언급URL : https://stackoverflow.com/questions/12907236/how-to-execute-a-powershell-script-only-before-a-web-deploy-publish-task-in-vs-2
'source' 카테고리의 다른 글
DB 업데이트 후 수동으로 최대 절전 모드 2단계 캐시 지우기 (0) | 2023.10.23 |
---|---|
C 함수의 인수와 C 함수의 오버로드에 대한 기본값 (0) | 2023.10.23 |
Android ClickableSpan이 Click을 호출하지 않음 (0) | 2023.10.23 |
jQuery 객체 및 DOM 요소 (0) | 2023.10.23 |
이 호환되는 기능 타입들이 C에 있습니까? (0) | 2023.10.23 |