4

私は簡単な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

誰かが私に何が起こっているのか、なぜ、そして私が期待する行動をとる方法を教えてもらえますか?

4

2 に答える 2

11

ここからhttp://codebetter.com/jameskovacs/2010/04/12/psake-v4-00/

パラメータとプロパティのサポート

Invoke-psakeには、–parametersと–propertiesの2つの新しいオプションがあります。パラメータは、現在のビルドスクリプトに渡されるハッシュテーブルです。これらのパラメーターは、ビルドスクリプトの「プロパティ」関数の前に処理されます。つまり、プロパティ内から使用できます。

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を取り出して、タスクブロック内に作成します

于 2013-03-27T05:18:27.527 に答える
0

プロパティにデフォルト値を使用し、同時にパラメータを使用する場合は、ここにサンプルのハウツーがあります。

properties {
    $SolutionDir = "SOLUTIONDIR" # Resolve-Path ".\src"
    $Config = if($config){$config} else {"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 -parameters @{config="Staging"}

(psake 4.3.2を使用してテスト済み)

これにより、設定より規約の使用が促進され、古い学校の生徒は設定より規約を使い続けることができます。

于 2014-05-20T02:30:21.417 に答える