通过MSBUILD构建时未使用编译符号



我有一个项目,我在项目属性中添加了编译符号(mySymbol)。从VS构建时,它可以正常运行,并且申请会相应地行动。

其他项目具有以这种方式定义的各种符号。

从MSBUILD构建时,Mysybol被忽略了一些奇怪的原因,该应用程序的作用似乎从未设置。

我尝试将/p:"DefineConstants=MYSYMBOL"添加到MSBUILD调用中,但随后构建失败了,因为它似乎仅用一个项目替换了每个项目的其他符号,因此一个组件例如,例如需要MYSYMBOL + OTHERSYMBOL,但现在仅获得MYSYMBOL

这很奇怪,因为它实际上确实将其他符号用于通过MSBUILD构建时的项目。

有人知道,在通过MSBuild构建时不使用的项目属性会导致MYSYMBOL吗?

结果表明,构建脚本已经单独说明了一组编译器符号,在单独的项目设置中覆盖了这些符号,这又导致了此问题。

据我了解,

您不能添加一个或多个编译器符号,因为您声明的任何内容都取代了项目的符号。

最终必须传递整个解决方案中每个项目的每个符号。

太糟糕了:(

您将需要在deconeconstants列表中添加一个新符号(而不是覆盖整个celecontants的列表)。这将完成您想要的事情:

<PropertyGroup>
    <DefineConstants>MYSYMBOL;$(DefineConstants)</DefineConstants>
</PropertyGroup>

最新更新