我有一个项目,我在项目属性中添加了编译符号(mySymbol)。从VS构建时,它可以正常运行,并且申请会相应地行动。
其他项目具有以这种方式定义的各种符号。
从MSBUILD构建时,Mysybol被忽略了一些奇怪的原因,该应用程序的作用似乎从未设置。
我尝试将/p:"DefineConstants=MYSYMBOL"
添加到MSBUILD调用中,但随后构建失败了,因为它似乎仅用一个项目替换了每个项目的其他符号,因此一个组件例如,例如需要MYSYMBOL + OTHERSYMBOL
,但现在仅获得MYSYMBOL
。
这很奇怪,因为它实际上确实将其他符号用于通过MSBUILD构建时的项目。
有人知道,在通过MSBuild构建时不使用的项目属性会导致MYSYMBOL
吗?
结果表明,构建脚本已经单独说明了一组编译器符号,在单独的项目设置中覆盖了这些符号,这又导致了此问题。
据我了解,您不能添加一个或多个编译器符号,因为您声明的任何内容都取代了项目的符号。
最终必须传递整个解决方案中每个项目的每个符号。
太糟糕了:(
您将需要在deconeconstants列表中添加一个新符号(而不是覆盖整个celecontants的列表)。这将完成您想要的事情:
<PropertyGroup>
<DefineConstants>MYSYMBOL;$(DefineConstants)</DefineConstants>
</PropertyGroup>