【发布时间】:2016-06-07 02:45:13
【问题描述】:
我在解决方案中有一个项目,以及构建解决方案的 MS Build。作为构建的一部分,我可以添加 MS Build 参数。无论如何,我可以在项目内的代码中引用该构建参数吗?
【问题讨论】:
-
可以在代码中条件编译符号。
-
@Agalo 那会是什么样子?
我在解决方案中有一个项目,以及构建解决方案的 MS Build。作为构建的一部分,我可以添加 MS Build 参数。无论如何,我可以在项目内的代码中引用该构建参数吗?
【问题讨论】:
我之前实现过的一种“快速而肮脏”的方法是在 MSBuild 中动态生成源文件并将其添加到 Compile 项目组。
这是假设您通过“MS Build Parameter(s)”表示 MSBuild 属性,在命令行中指定为 /p:MyProperty=foo。
<Target Name="WriteToFile" BeforeTargets="PrepareForBuild">
<ItemGroup>
<_Lines Include='// auto-generated!' />
<_Lines Include='public class MyProperties {' />
<_Lines Include=' public string Property1="$(Property1)"'; />
<_Lines Include='}'; />
</ItemGroup>
<WriteLinesToFile
File="autogen.cs"
Lines="@(_Lines)"
Overwrite="true" />
</Target>
<ItemGroup>
<Compile Include="autogen.cs">
</ItemGroup>
</Target>
【讨论】: