我正在尝试将Dotfuscator Community Edition与Visual Studio 2017一起使用来构建Xamarin for Android应用程序。 Visual Studio输出给了我错误:
1>C:xpXamarinFormsXamarinFormsXamarinForms.AndroidPreEmptive.Dotfuscator.Xamarin.targets(347,5): error MSB3073: The command ""C:Program Files (x86)Microsoft Visual Studio2017CommunityCommon7IDEExtensionsPreEmptiveSolutionsDotfuscatorCEdotfuscatorCLI.exe" /p:InDir="objReleaseDotfuscatorXamarindfin",OutDir="objReleaseDotfuscatorXamarindfout",ReportDir="DotfuscatorReportsRelease" "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并尝试更改一些选项。 在重命名->选项->启用重命名中禁用重命名后,构建成功了,但它使不重命名的混淆毫无意义。
你能帮我找到,究竟是什么导致了这个问题以及如何解决它吗?
(免责声明:我在Dotfuscator团队的PreEmptive Solutions工作,并以这种身份回答这个问题。
更新(2018-03-15):此问题的修复程序已在Dotfuscator Community Edition 5.34.0中发布(更新日志,请注意"标记分析"修复)。您可以随时在此处下载Visual Studio 2017的最新版本。
前面的答案写在本版本之前,如下。
这似乎是最近在Dotfuscator Professional Edition 4.33.0(更新日志)中修复的标记分析错误。虽然此修复程序当前未在社区版 5.32.1(Visual Studio 2017 15.5 附带的版本)中发布,但作为现在的解决方法,您可以禁用标记分析。这比完全关闭重命名要好。
要禁用标记分析,请将名为disable_markup_analysis
和值true
的项目属性添加到 Dotfuscator 配置文件中。您可以使用社区版 GUI 执行此操作,或者,如果您愿意,可以直接编辑配置文件:
- 在文本编辑器中打开
DotfuscatorConfig.xml
文件。 - 在根
<dotfuscator>
部分中,添加子<propertylist>
标记及其结束</propertylist>
标记(如果它们尚不存在)。 - 在"
<propertylist>
"部分中,添加标记<property name="disable_markup_analysis" value="true" />
。