0

次のようなビルド後のイベントがあります。

if NOT "$(OutDir)" == "Binaries\" "$(SolutionDir)Tools\NuGet.exe" pack "$(ProjectDir)MyAssembly.nuspec" -BasePath "$(ProjectDir)$(OutDir)."

しかし、私が本当にやりたいことは、 $(OutDir)にBinariesという単語が含まれているかどうかを確認することです。

これを行う方法はありますか?私は試した:

if NOT "$(OutDir)".Contains("Binaries") "$(SolutionDir)Tools\NuGet.exe" pack "$(ProjectDir)MyAssembly.nuspec" -BasePath "$(ProjectDir)$(OutDir)."

しかし、うまくいきません。

おまけとして、「Post-Build」イベントはどの言語で行われるべきですか?

4

1 に答える 1

1

MS-Dosであることが判明しました。そのため、ほとんどのバッチ ファイルの種類が許可されます。

最終的に使用したコマンドは次のとおりです。

@Echo off&Setlocal EnableDelayedExpansion
set BinariesVar=Binaries
set "PathDir=$(OutDir)"
IF "!PathDir:%BinariesVar%=!" NEQ "%PathDir%" (if $(ConfigurationName) == Release "$(SolutionDir)Tools\NuGet.exe" pack "$(ProjectDir)MyAssembly.nuspec" -BasePath "$(OutDir)") else (if $ (ConfigurationName) == Release "$(SolutionDir)Tools\NuGet.exe" pack "$(ProjectDir)MyAssembly.nuspec" -BasePath "$(ProjectDir)$(OutDir.")

これは、ビルドが TFS 経由ではない最初のパスを使用し、TFS ビルドの 2 番目のパスを使用します。

于 2012-02-03T22:25:05.947 に答える