gpt4 book ai didi

msbuild - MSBuild托管与非托管属性

转载 作者:太空宇宙 更新时间:2023-11-04 12:30:03 28 4
gpt4 key购买 nike

MSBuild逻辑中是否可以确定我运行的是托管代码还是非托管代码?不是C++ vs C#,而是托管还是非托管?我想根据代码是托管还是非托管设置不同的一些属性(通常只是版本信息)。

最佳答案

通常,在vcxproj文件中有两件事会发生更改以进行托管组合(afaik,至少这是我们在所有cli项目所使用的主c++ / cli属性表中拥有的方式):CLRSupport属性设置为true,而ClCompile ItemGroup具有将CompileAsManaged元数据设置为true。您可以检查其中的任何一个或同时检查这两个。这是一个打印值的目标:

<Target Name="CheckManaged">
<ItemGroup>
<ClCompile Include="dummy.cpp" />
</ItemGroup>

<PropertyGroup>
<CompileAsManaged>@(ClCompile->AnyHaveMetadataValue('CompileAsManaged','true'))</CompileAsManaged>
</PropertyGroup>

<Message Text="CompileAsManaged is $(CompileAsManaged) and CLRSupport is $(CLRSupport)" />

<ItemGroup>
<ClCompile Remove="dummy.cpp" />
</ItemGroup>
</Target>

如您所见,获取 CompileAsManaged元数据值需要一些处理:我将一个项目添加到ClCompile组中,因为如果该组为空,则可以使用CompileAsManaged;通常您可以忽略此设置。

关于msbuild - MSBuild托管与非托管属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59033575/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com