gpt4 book ai didi

powershell - 为什么 psake 没有按照我期望的方式评估我的属性(property)?

转载 作者:行者123 更新时间:2023-12-03 16:25:04 25 4
gpt4 key购买 nike

我有一个简单的 psake 脚本:

properties {
$SolutionDir = "SOLUTIONDIR" # Resolve-Path ".\src"
$Config = "Debug"
$DeployBaseDir = "$SolutionDir\RMSS.Setup.WiX\bin\$Config"
$InstallerName = "RMSForMoversSuite_2_0_0"
}

task default -depends Test

task Test {
"CONFIG = $Config"
"SOLUTIONDIR = $SolutionDir"
"DEPLOYBASEDIR = $DeployBaseDir"
}

我从命令行调用它,如下所示:
& .\psake.ps1 .\deploy.ps1 -properties @{"Config"="Staging"}
我希望 $DeployBaseDir 等于 SOLUTIONDIR\RMSS.Setup.WiX\bin\Staging
但相反,我得到了这个输出:
CONFIG = Staging
SOLUTIONDIR = SOLUTIONDIR
DEPLOYBASEDIR = SOLUTIONDIR\RMSS.Setup.WiX\bin\Debug

谁能告诉我发生了什么,为什么以及如何获得我期望的行为?

最佳答案

从这里 http://codebetter.com/jameskovacs/2010/04/12/psake-v4-00/

支持参数和属性

Invoke-psake 有两个新选项,–parameters 和 –properties。参数是传递到当前构建脚本的哈希表。这些参数在构建脚本中的任何“属性”函数之前处理,这意味着您可以在属性中使用它们。

invoke-psake Deploy.ps1 -parameters @{server=’Server01’}

# Deploy.ps1
properties {
$serverToDeployTo = $server
}

task default -depends All

当您有所需信息时,参数非常有用。另一方面,属性用于覆盖默认值。
invoke-psake Build.ps1 -properties @{config='Release'}

# Build.ps1
properties {
$config = 'Debug'
}

task default -depends All

因此,您可以从属性中取出 $Config 并将其作为参数传入。
或者从属性中取出 $DeployBaseDir 并在任务块中创建它

关于powershell - 为什么 psake 没有按照我期望的方式评估我的属性(property)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15647824/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com