Почему условный символ компиляции не будет обнаружен в сборке выпуска? - PullRequest
0 голосов
/ 07 марта 2012

У меня есть решение WPF, содержащее компонент подпроекта с кодом WPF и Silverlight. Если определен символ условной компиляции "WPF", то создается код WPF, а если он не определен, то создается код Silverlight. Это работает для моей сборки Debug просто отлично. Однако, когда я пытаюсь сделать сборку Release, сборка не обнаруживает символ "WPF", и, поскольку она неправильно компилирует код silverlight, я получаю сборку, которая не будет работать. Есть идеи, почему символ WPF не определяется сборкой?

Вот соответствующий раздел .csproj. Обратите внимание, что символ «WPF» определен в DefineConstants как для Debug, так и для Release, но он не обнаруживается в сборках выпуска. Кто-нибудь может помочь?

<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>

Ответы [ 2 ]

0 голосов
/ 24 апреля 2015

Убедитесь, что ваши определения указаны для всех конфигураций DEBUG и RELEASE и любых других, которые у вас могут быть.

0 голосов
/ 25 октября 2012

Из того, что я прочитал, я думаю, что вам может понадобиться обновить определение вашей сборки, добавив что-то вроде:

/p:DefineConstants="WPF"

Это в определении сборки в Process> Advanced> MSBuild Arguments.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...