这就是我正在尝试做的事情:
- 单个构建脚本
- 该脚本从同一个 Visual Studio 项目构建两个可执行文件。
- 第一个编译的 .exe 有少量代码已禁用。
- 另一个编译的 .exe 已启用所有内容。
我一直在阅读conditional compilation就启用/禁用代码块而言,这可以满足我的需求。
我只是不知道如何使用 msbuild 从构建脚本控制条件编译。
有没有办法从构建脚本或其他方式操纵条件编译变量来完成我想要做的事情?
最佳答案
在项目文件中使用构建配置。在根据配置选择性包含的 PropertyGroup 中设置参数。然后,该配置还可以定义程序集的两个不同版本的输出路径。
对于需要删除某些代码的版本,请使用包含 PropertyGroup 的配置。
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'CompiledOutDebug|AnyCPU' ">
<DefineConstants>$(DefineConstants);MY_CONDITIONAL_COMPILATION_CONSTANT</DefineConstants>
</PropertyGroup>
然后使用 MSBuild 脚本调用项目 MSBuild 脚本两次,并使用 MSBuild 任务的 Properties 属性来指定要生成的配置:
<Target Name="Build">
<MSBuild Projects="MyProject.csproj;"
Targets="Build"
Properties="Configuration=Release" />
<MSBuild Projects="MyProject.csproj"
Targets="Build"
Properties="Configuration=CompiledOutDebug" />
</Target>
关于vb.net - 在 Visual Studio 中使用自动构建进行条件编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/559881/