Там должен так или иначе использовать константы компилятора в Событиях Сборки в Visual Studio - VB.NET? (особенно в событиях Post-Build)
Сценарий
Если TEST_EDITION=TRUE
определяется я хочу выполнить исполняемый файл во время события Post-Build поэтому, если это FALSE
затем я выполню что-то еще.
Это может использоваться для создания различных установщиков для различных выпусков.
P.S. Прежде чем кто-то предложит: Нет я не хочу использовать nant, msbuild или что-то как этот
Да, макрос $ (DefineConstants) доступен и может быть протестирован в событии сборки. Например, Project + Compile, Advanced Compile Options, Custom constants = Test можно протестировать следующим образом:
if /i "$(DefineConstants)" NEQ "TEST" goto skiptest
echo Setting up for test environment
:skiptest
Более сложные пользовательские константы, такие как Test = TRUE или составные константы, необходимо анализировать по-другому. По общему признанию, я быстро отказался от попыток понять, как использовать ужасную команду FOR.
Вы пробовали MsBuild PostEvents? это отрывок из .csproj ... но то же самое относится к файлам vbproj
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
<Copy SourceFiles="$(OutputPath)$(AssemblyName).dll" DestinationFolder="$(BinariesFolder)" ContinueOnError="true" />
</Target>
Вы можете использовать его с TaskExec Target, который позволяет вам запускать командный файл или исполняемый файл.
<Target Name="DoSomething">
<Exec Command="D:\DoSomething.exe"/>
</Target>
Не уверен в синтаксисе Visual Basic, но следующий трюк может быть использован C++: файл global_inc.bat читается так:
SET PARAMETER=TRUE
Это может быть введено пакетным скриптом, который вызывается в событии post-build. Код на C++ использовал этот файл следующим образом:
#define PARAMETER const int parameter
#define SET /**/
#include "global_inc.bat"
;
#undef PARAMETER
Шаг постбилда выглядел так:
call global_inc.bat
if "%PARAMETER%" == "TRUE" echo True
Другая возможность заключается в том, чтобы на шаге пребилда генерировался файл .vb
, а также файл конфигурации, используемый на шаге постбилда.