我有一个WPF解决方案,其中包含一个带有WPF和Silverlight代码的子项目组件。如果定义了“WPF”条件编译符号,则构建WPF代码,如果未定义,则构建Silverlight代码。这适用于我的Debug构建就好了。但是,当我尝试进行发布版本时,构建不会检测到“WPF”符号,因为它会错误地编译silverlight代码,我会得到一个无效的构建版本。任何想法为什么WPF符号没有被构建检测到?
以下是.csproj的相关部分。请注意,“Debug”和“发布”的DefineConstants中定义了“WPF”符号,但在发布版本中未检测到它。有人可以帮忙吗?
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>TRACE;DEBUG;WPF</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<NoWarn>1607</NoWarn>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE;WPF</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
答案 0 :(得分:0)
从我读过的内容来看,我认为您可能需要更新构建定义以包含以下内容:
/p:DefineConstants="WPF"
这是在Process&gt;下的Build定义中。高级&gt; MSBuild Arguments。
答案 1 :(得分:0)
确保为所有配置DEBUG和RELEASE以及您可能拥有的任何其他配置指定了定义。