我正在尝试使用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,并尝试更改一些选项。 在重命名后禁用重命名 - >选项 - >启用重命名后,构建成功,但如果没有重命名,它会使混淆毫无意义。
您能帮我找一下,究竟是什么导致了这个问题以及如何解决这个问题?
答案 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执行此操作,或者,如果您愿意,可以直接编辑配置文件:
DotfuscatorConfig.xml
文件。<dotfuscator>
部分中,添加子<propertylist>
标记及其结束</propertylist>
标记(如果它们尚不存在)。<propertylist>
部分中,添加标记<property name="disable_markup_analysis" value="true" />
。