加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
prm.build.ps1 2.13 KB
一键复制 编辑 原始数据 按行查看 历史
Shawn 提交于 2022-12-23 11:05 . update how to build, fix #331
<# .PARAMETER ib #>
param (
[ValidateSet('Debug', 'Release')]
[string] $aReleaseType = 'Release'
)
Enter-Build {
$ProjectName = Split-Path $pwd -Leaf
$msbuild = Resolve-MSBuild
Write-Host "Using msbuild: $msbuild"
Set-Alias MSBuild $msbuild -Scope Global
}
# Synopsis: Ensure local dependencies
task Deps {
if (!(Test-Admin)) { throw "This task must be run in administrative shell" }
if (!(Get-Command choco.exe -ErrorAction 0)) {
Invoke-WebRequest https://chocolatey.org/install.ps1 -UseBasicParsing | Invoke-Expression
} else { Write-Host "Chocolatey already installed" }
exec {
#choco install -y dotnetfx --version 4.8.0.20190930
#choco install -y visualstudio2019buildtools
#choco install -y visualstudio2019-workload-universal
#choco install -y windows-sdk-10-version-1809-all
choco install -y visualstudio2022community
choco install -y dotnet-6.0-sdk
choco install -y visualstudio2022-workload-manageddesktop
choco install -y visualstudio2022-workload-universal
# optional
# choco install -y git
}
}
# Synopsis: Build the application
task Build {
if (($f = [System.IO.Directory]::GetFiles($pwd, '*.sln')).Length -eq 1) {
$SolutionPath = $f[0]
}
exec { MSBuild $SolutionPath /t:Build /ignoreprojectextensions:.csproj /property:Configuration=$aReleaseType }
}
# Synopsis: Build in Windows Sandbox
task BuildInSandbox {
.\scripts\Test-Sandbox.ps1 -MapFolder $pwd -Script "
cd `$Env:USERPROFILE\Desktop\$ProjectName
Set-Alias ib `$pwd\Invoke-Build.ps1
ib Deps
ib Build
"
}
# Synopsis: Clean generated data
task Clean {
if (($f = [System.IO.Directory]::GetFiles($pwd, '*.sln')).Length -eq 1) {
$SolutionPath = $f[0]
}
exec { MSBuild $SolutionPath /t:Clean /property:Configuration=$aReleaseType }
}
# Test for administration privileges
function Test-Admin() {
$usercontext = [Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()
$usercontext.IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化