Как настроить обфускатор babel.net только для запуска на сборках релиза? - PullRequest
1 голос
/ 26 августа 2011

Мне удалось изменить файл * .proj для проекта, включив в него цель сборки babel.

<Import Project="C:\Program Files\Babel\MSBuild\Babel.Build.targets" />

Это работает, но выполняет babel как для отладочной, так и для релизной сборок.Я хочу, чтобы babel запутал только релизные сборки.На стр. 82 руководства я должен включить следующий код:

<Import Project="C:\Program Files\Babel\MSBuild\Babel.Build.targets" />
<Choose>
<When Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PropertyGroup>
<EnableObfuscation>false</EnableObfuscation>
</PropertyGroup>
</When>
<When Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PropertyGroup>
<EnableObfuscation>true</EnableObfuscation>
<ILIterations>3</ILIterations>
<StringEncryption>true</StringEncryption>
</PropertyGroup>
</When>
</Choose>

Однако при включении этого кода в файл * .proj я получаю ошибку сборки, что «EnableObfuscation» не является допустимым параметром.

1 Ответ

1 голос
/ 28 января 2012

Проверьте правильность вашего пути к Babel.Build.targets. Затем отредактируйте этот файл и найдите свойство EnableObfuscation, чтобы убедиться, что оно существует.

Я изменил предложенный конфиг из документации на следующий и добавил ко всем моим проектам, и он отлично работает.

<Import Project="C:\Program Files\Babel\MSBuild\Babel.Build.targets" />
  <Choose>
    <When Condition=" '$(Configuration)' == 'Debug' ">
      <PropertyGroup>
        <EnableObfuscation>false</EnableObfuscation>
      </PropertyGroup>
    </When>
    <When Condition=" '$(Configuration)' == 'Release' ">
      <PropertyGroup>
        <EnableObfuscation>true</EnableObfuscation>
        <ILIterations>3</ILIterations>
        <StringEncryption>true</StringEncryption>
      </PropertyGroup>
    </When>
  </Choose>

Вышеописанное работает в моем проекте Windows Phone 7 и работает с файлом XAP, добавив его в дополнение к автозагрузке проекта

  <Target Name="AfterBuild">
    <CreateProperty Value="@(_OutputPathItem->'%(FullPath)$(XapFilename)')">
      <Output TaskParameter="Value" PropertyName="BabelInputFile"/>
    </CreateProperty>
  </Target>
...