分析标记后,具有Xamarin android的Dotfuscator失败

时间:2018-01-04 19:03:54

标签: windows xamarin xamarin.android visual-studio-2017 dotfuscator

我正在尝试使用Visual Studio 2017的Dotfuscator社区版来构建适用于Android应用的Xamarin。 Visual Studio输出给了我错误:

1>C:\xp\XamarinForms\XamarinForms\XamarinForms.Android\PreEmptive.Dotfuscator.Xamarin.targets(347,5): error MSB3073: The command ""C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\Extensions\PreEmptiveSolutions\DotfuscatorCE\dotfuscatorCLI.exe" /p:InDir="obj\Release\DotfuscatorXamarin\dfin",OutDir="obj\Release\DotfuscatorXamarin\dfout",ReportDir="DotfuscatorReports\Release" "DotfuscatorConfig.xml"" exited with code 1.

当我使用cmd.exe运行该命令时,我有以下输出:

[Build Output] Resolving method references...
[Build Output] Analyzing Markup...
[Build Output] Value cannot be null.
Parameter name: key
[Build Output] Build Error.

我在Dotfuscator GUI应用程序中打开了DotfuscatorConfig.xml,并尝试更改一些选项。 在重命名后禁用重命名 - >选项 - >启用重命名后,构建成功,但如果没有重命名,它会使混淆毫无意义。

您能帮我找一下,究竟是什么导致了这个问题以及如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

免责声明:我在Dotfuscator团队的PreEmptive Solutions工作,我正在以这种身份回答这个问题。)

更新(2018-03-15):此问题的修复程序已在Dotfuscator Community Edition 5.34.0(changelog)中提供,请注意“标记分析”修复程序。您始终可以下载Visual Studio 2017 here的最新版本。

在此版本之前编写的上一个答案如下。

这似乎是最近在Dotfuscator Professional Edition 4.33.0(changelog)中修复的标记分析错误。虽然此修补程序目前尚未在Community Edition 5.32.1(Visual Studio 2017 15.5附带的版本)中发布,但作为现在的解决方法,您可以禁用标记分析。这比完全重命名更好。

要禁用标记分析,请将项目属性添加到名为disable_markup_analysis且值为true的Dotfuscator配置文件中。您可以使用Community Edition GUI执行此操作,或者,如果您愿意,可以直接编辑配置文件:

  1. 在文本编辑器中打开DotfuscatorConfig.xml文件。
  2. 在根<dotfuscator>部分中,添加子<propertylist>标记及其结束</propertylist>标记(如果它们尚不存在)。
  3. <propertylist>部分中,添加标记<property name="disable_markup_analysis" value="true" />