빌드 후 이벤트 실행 PowerShell
를 셋업할 수 있습니까?Powershell 스크립트를 실행하기 위한 포스트 빌드 이벤트가 있는 NET 프로젝트이 스크립트를 사용하여 파일을 생성하고 있습니다.
또한 디버깅 빌드인지 릴리스 빌드인지 스크립트로 전달할 수 있습니다.이것의 예가 좋을 것이다.
다음은 예를 제시하겠습니다.
우선 : 스크립트를 실행하도록 PowerShell을 구성해야 한다는 사실을 알고 있어야 합니다.PowerShell에서 스크립트를 실행할 수 있는 행은 다음과 같습니다.
Set-ExecutionPolicy RemoteSigned
64비트 시스템을 실행하는 경우 Visual Studio 2010 실행 파일은 32비트 exe이므로 PowerShell 32에서 스크립트를 실행할 수 있도록 해야 합니다.
여기서 프로젝트 속성으로 이동하여 아래 그림과 같이 포스트 빌드를 구성할 수 있습니다(프랑스어로 죄송합니다).
예를 들어 다음과 같습니다.
여기 파일이 있습니다.psbuild.ps1
'를 생성한다.test.txt
설정명을 포함한 타겟 패스에 있습니다.포스트빌드 스크립트를 디버깅하는 다른 방법(메시지 상자, 사운드, 출력 메시지)을 코멘트에 추가했습니다.
param ([string]$config, [string]$target)
#[void][Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
#[void][System.Windows.Forms.MessageBox]::Show("It works.")
#[Console]::Beep(600, 800)
#Write-Host 'coucou'
set-content $target -Value $config -Force
명령어 Set-ExecutePolicy는 현재 세션에서 실행 정책을 일시적으로 설정합니다.이 설정을 powershell로 설정하고 vs에서 post build 명령을 실행해도 허용되지 않습니다.따라서 먼저 설정한 후 ps1 스크립트를 실행합니다.
powershell -ExecutionPolicy Unrestricted $(ProjectDir)Deploy.ps1 -ProjectDir $(ProjectDir) -TargetPath $(TargetPath)
시스템 전체의 설정을 조작해, 32비트 환경과 64비트 환경을 구별하는 대신에, 보다 쉽고 신뢰성 높은 어프로치를 지정해 주세요.ExecutionPolicy
다음과 같이 PowerShell에 대한 호출을 수행합니다.
C:\Users\xyz>PowerShell -ExecutionPolicy Unrestricted
PS C:\Users\xyz> Get-ExecutionPolicy
Unrestricted
PS C:\Users\xyz> exit
C:\Users\xyz>PowerShell -ExecutionPolicy RemoteSigned
PS C:\Users\xyz> Get-ExecutionPolicy
RemoteSigned
위 코드에 통화 방법을 적어 둡니다.Get-ExecutionPolicy
에 현재 모드를 나타냅니다.또한 스크립트 파일 이름과 조합할 수 있는 PowerShell 자체에 대한 호출에서 이 모드가 어떻게 지정되는지 유의하십시오.
test.ps1 내용:
echo ('The current policy is ' + (Get-ExecutionPolicy)).ToString()
test.ps1을 호출하다Unrestricted
스크립트가 비활성화되어 있는 시스템의 정책:
C:\Users\xyz>PowerShell -ExecutionPolicy Unrestricted -file test.ps1
The current policy is Unrestricted
또한 위의 호출은 관리자 권한이 필요하지 않으므로 Visual Studio의 빌드 전 단계 등에서 호출할 수 있습니다.
visual studio에서 power-shell 스크립트를 호출하기 전에 ExecutionPolicy를 다음과 같이 설정합니다.RemoteSigned
이렇게 파워셸 창문에서...
Set-ExecutionPolicy -Scope CurrentUser;
ExecutionPolicy: RemoteSigned;
다음 방법으로 powershell 스크립트를 호출합니다.
('powershell.exe' 파일 경로 전체를 전달할 필요는 없습니다.)
powershell.exe $(SolutionDir)Setup.ps1 -SolutionDir $(SolutionDir) -ProjectPath $(ProjectPath)
그러면 스크립트에서는 항상 이렇게 파라미터를 읽을 수 있습니다.
param([string]$SolutionDir,
[string]$ProjectPath);
#Write-Host ($SolutionDir +" Call this script with following aruments");
#Write-Host ($ProjectPath +" Call this script with following aruments");
post-build even 명령에서 다음 명령을 사용하여 만들었습니다.
PowerShell -NoProfile -ExecutionPolicy unrestricted -file $(SolutionDir)AutomationScript\DBAutomationScript.ps1 -target $(SolutionDir)MUFG.SECMOD.Data\SqlScripts -generatedFileName $(SolutionDir)MUFG.SECMOD.Data\SqlScripts\DeploymentDBScript.sql
DBAutomationScript.ps1 내용:
param ([string]$target, [string]$generatedFileName)
언급URL : https://stackoverflow.com/questions/6500320/post-build-event-execute-powershell
'code' 카테고리의 다른 글
HTML: 유효한 ID 속성 값입니까? (0) | 2023.04.08 |
---|---|
SQL Server 트랜잭션 로그를 지우려면 어떻게 해야 합니까? (0) | 2023.04.08 |
다른 div 내부의 div를 수직으로 중심 맞춤 (0) | 2023.04.08 |
정적 HTML 페이지에 favicon 추가 (0) | 2023.04.08 |
CSS를 사용하여 요소 배경의 불투명도를 낮추려면 어떻게 해야 합니까? (0) | 2023.04.08 |