2011-08-25 50 views
1

我能够修改项目的* .proj文件以包含babel构建目标。如何将babel.net混淆器配置为仅在发布版本上运行?

<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

检查您的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项目中的上述作品,并通过另外增加这启动项目

<Target Name="AfterBuild"> 
    <CreateProperty Value="@(_OutputPathItem->'%(FullPath)$(XapFilename)')"> 
     <Output TaskParameter="Value" PropertyName="BabelInputFile"/> 
    </CreateProperty> 
    </Target> 
的工作原理与XAP文件