Я хочу получить состояние файла после обработки всех условий с использованием платформы и конфигурации. это включает в себя такие вещи, как OutputPath, AllowUnsafe, BuildTargets и т. для компилятора типа PreprocessorDefinitions
.
В качестве рекомендации вы можете попытаться добавить пользовательский target в xxxx.csproj
файл для выполнения некоторой задачи msbuild для выполнения некоторой предварительной обработки. И вы хотите сделать все это после цели pre-build
, вы можете просто установить AfterTargets="PrepareForBuild"
для этой пользовательской цели, что означает, что она будет выполняться после цели PrepareForBuild
.
Предложения
Точно так же:
<Target Name="CustomPreprocessor" AfterTargets="PrepareForBuild">
<Message Importance="high" Text="$(OutputPath)--$(AllowUnsafeBlocks)--$(PrepareForBuildDependsOn)" ></Message>
........//other msbuild task
</Target>
1) Если вы хотите использовать конфигурацию в качестве условия и выполнять различные предварительные инструкции в соответствии с Debug
или Release
, вы можете использовать MSBuild условия . Если вы хотите использовать Debug
, вы можете обратиться к этому:
<Target Name="CustomPreprocessor" AfterTargets="PrepareForBuild" Condition=" '$(Configuration)' == 'Debug' ">
В то же время, если вы также хотите добавить palform в качестве параллельного условия, попробуйте это :
<Target Name="CustomPreprocessor" AfterTargets="PrepareForBuild" Condition=" '$(Configuration)' == 'Debug' and '$(Platform)' =='Any CPU' ">
2) Поскольку outputpath
и AllowUnsafe
являются свойствами MSBuild, вы можете использовать $(outputpath)
и $(AllowUnsafeBlocks)
, чтобы получить их значения, тогда как вы можете использовать @(...)
чтобы получить значения элементов MSBuild .
3) В основном, чтобы выполнить прединструкцию в target, вы можете сделать это с помощью задачи, вы можете обратиться к этот документ для добавления любой задачи, как вы хотите выполнить любую операцию.