0

.NET 3.5 で自社の C# プロジェクト用に psake を使用してビルド スクリプトを作成しようとしていますが、実行するとエラーで失敗します

default parameter specifiers are not permitted

私はグーグルで検索しましたが、関数でデフォルトのパラメーターを許可しない.NET 3.5の問題のようです。

しかし、msbuild.exe でビルドされた同じプロジェクトが成功するのは奇妙です。psake の $framework 変数を '3.5x86' と '3.5x64' に設定しようとしましたが、どれも役に立ちません。

psake の何が問題なのか、または私が見逃している秘密の変数があるかどうか、何か考えはありますか?

私のpsakeスクリプト:

$scriptDir = Split-Path -Path $MyInvocation.MyCommand.Definition -Parent

$framework = '3.5x86'

$serverSln = $scriptDir+'\..\Server\Server.sln'
$clientSln = $scriptDir+'\..\Client\Client.sln'
$outDirServer = $scriptDir+'\..\Binaries\Server'
$outDirClient = $scriptDir+'\..\Binaries\Client'


task default -depends Full
task Full -depends Clean, BuildServer, BuildClient #, BuildAccs, DeployRelease

task BuildServer {
  #Framework '3.5'
  exec { msbuild $serverSln /t:Build /p:Configuration=Release /v:quiet }
}

task BuildClient {

  #Framework '3.5'
  exec { msbuild $clientSln /t:Build /p:Configuration=Deploy /v:quiet }
  exec { msbuild $clientSln /t:Build /p:Configuration=Release /v:quiet }
}

task Clean {
  Write-Host Cleaning

  if (Test-Path $outDirClient) 
    {   
        rd $outDirClient -rec -force | out-null
    }

  if (Test-Path $outDirServer) 
    {   
        rd $outDirServer -rec -force | out-null
    }
}

スクリプトの出力:

$scriptDir = Split-Path -Path $MyInvocation.MyCommand.Definition -Parent

$framework = '3.5x86'

$serverSln = $scriptDir+'\..\Server\Server.sln'
$clientSln = $scriptDir+'\..\Client\Client.sln'
$outDirServer = $scriptDir+'\..\Binaries\Server'
$outDirClient = $scriptDir+'\..\Binaries\Client'


task default -depends Full
task Full -depends Clean, BuildServer, BuildClient #, BuildAccs, DeployRelease

task BuildServer {
  #Framework '3.5'
  exec { msbuild $serverSln /t:Build /p:Configuration=Release /v:quiet }
}

task BuildClient {

  #Framework '3.5'
  exec { msbuild $clientSln /t:Build /p:Configuration=Deploy /v:quiet }
  exec { msbuild $clientSln /t:Build /p:Configuration=Release /v:quiet }
}

task Clean {
  Write-Host Cleaning

  if (Test-Path $outDirClient) 
    {   
        rd $outDirClient -rec -force | out-null
    }

  if (Test-Path $outDirServer) 
    {   
        rd $outDirServer -rec -force | out-null
    }
}
4

2 に答える 2

0

この$framework変数は最新バージョンでは非推奨になっているため、framework代わりに関数を使用する必要があります。しかし、どうやらうまくいきません。PSake のバグのようです。

于 2013-07-12T07:36:34.490 に答える