Условие Post Build, проверяющее строку, содержащую другую строку (вместо ==) - PullRequest
0 голосов
/ 03 февраля 2012

У меня есть событие пост-сборки, подобное этому:

if NOT "$ (OutDir)" == "Двоичные файлы \" "$ (SolutionDir) Tools \ NuGet.exe" pack "$ (ProjectDir) MyAssembly.nuspec" -BasePath "$ (ProjectDir) $ (OutDir). «

Но что я действительно хочу сделать, так это проверить, нет ли в $ (OutDir) слова Двоичные файлы .

Есть ли способ сделать это? Я попробовал:

если НЕ "$ (OutDir)". Содержит ("Binaries") "$ (SolutionDir) Tools \ NuGet.exe" pack "$ (ProjectDir) MyAssembly.nuspec" -BasePath "$ (ProjectDir) $ (OutDir) . "

Но это не работает.

Итак, в качестве бонусного балла, на каком языке будет проводиться событие после постройки?

1 Ответ

1 голос
/ 04 февраля 2012

Оказывается, это MS-Dos. Так что большинство типов командных файлов разрешено.

Вот команда, которую я использовал в итоге:

@ Echo off & Setlocal EnableDelayedExpansion
set BinariesVar = Binaries
set "PathDir = $ (OutDir)"
IF "! PathDir:% BinariesVar% =!" NEQ "% PathDir%" (если $ (ConfigurationName) == Выпустить "$ (SolutionDir) Tools \ NuGet.exe" pack "$ (ProjectDir) MyAssembly.nuspec" -BasePath "$ (OutDir).") Иначе (если $ (ConfigurationName) == Выпуск "$ (SolutionDir) Tools \ NuGet.exe" pack "$ (ProjectDir) MyAssembly.nuspec" -BasePath "$ (ProjectDir) $ (OutDir).")

При этом будет использован первый путь, если сборка выполняется не через TFS, а второй путь для сборок TFS.

...