gpt4 book ai didi

visual-studio - 新("sdk-style")与旧项目格式的MsBuild条件

转载 作者:行者123 更新时间:2023-12-04 05:57:43 31 4
gpt4 key购买 nike

我想编写一个要在新项目(“sdk样式”)和旧项目中都导入的msbuild“include”(.props)文件。

有没有办法找出将.props文件导入到哪种类型的项目中,以便我可以在某种情况下使用它?例如,

<PropertyGroup Condition="'$(ProjectType)'=='sdk'">
<SomeProperty>SomeValue</SomeProperty>
</PropertyGroup>

最佳答案

我在项目中也遇到了同样的需求。最初,我使用解决方案@wexman,但是我发现该变量不可靠。我考虑过打开csproj文件并使用正则表达式来查找sdk属性的方法,但是它对我来说太脆弱了-特别是考虑到sdk可以在元素或属性中指定。最后,我创建了一个启用了二进制日志记录的构建(选项/bl),并在构建SDK样式的项目时遍历了导入的各种文件。

我在props文件中发现了将属性UsingMicrosoftNETSdk设置为true的属性,当您使用SDK样式的项目时,该属性会自动导入Microsoft.Common.props。这种自动导入(导致Directory.Build.props的自动导入似乎是SDK样式项目中最重要的定义特征之一,并且该属性的名称使它看起来像更容易粘住。

所以最终我的解决方案是:

Condition="'$(UsingMicrosoftNETSdk)' == 'true'"

(或相反)(作为确定使用哪种类型的项目的可靠方法)。

关于visual-studio - 新("sdk-style")与旧项目格式的MsBuild条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52400116/

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