我的任务是混淆我的AndrProj项目和它引用的库:两个PCL (我们称之为PCL1和PCL2)和AndrLib。PCL2和AndrLib也引用了PCL1。
我受到这文章的启发,决定尝试密码混淆器 For .Net v2015演示版。
我使用了它的“Visual项目集成向导”。PCL1被设置为“第一个项目”,而AndrProj则被设置为“最后一个项目”。开始时只使用默认设置。现在,当我构建我的项目时,一切都是完美的。Dll在\bin\Release文件夹中被混淆。
如果我真的能创建一个.apk文件并在安卓设备上试用,我会非常高兴的。但是,当我选择在Xamarin中发布的Build -> Archive时,过了一段时间,我看到了'Build‘和
混淆时发生错误:-程序集'AndrLib‘已被Crypto混淆器混淆。如果在Visual项目上运行了Visual项目集成向导,则无法从Crypto混淆器UI中混淆,除非首先从Crypto混淆器的“Project”菜单-“启用/禁用Visual Studio Integration”菜单中禁用该项目的自动模糊处理,并在Visual中重新构建解决方案以生成未混淆的程序集。
我还尝试过Visual 2013中的“( .apk )”,但它提供的输出较少,仍然没有创建.apk。
我相信它只是抱怨AndrLib,因为它在PCL1、PCL2和AndrLib中排在第一位。更普遍的问题是,创建.apk会迫使所有程序集再次被混淆。有什么办法可以跳过第二次混淆吗?还是忽视这类问题?
发布于 2015-05-19 14:50:05
解决方案非常简单:我必须直接与目标SignAndroidPackage一起使用SignAndroidPackage,而不是从IDE创建.apk。
这里有一封来自技术支持部门的关于所描述问题的电子邮件(可能对某人有用):
如果您的解决方案在执行MSBuild集成后无法生成,请尝试以下操作:
更改构建输出日志的详细信息如下:菜单-> Options -> Projects和Solutions -> build和Run -> MSBuild项目生成输出详细信息,将其设置为Detailed。
现在,请检查Visual输出窗口,以获得有关错误原因的任何提示或更多信息。
将MSBuild使用的线程数更改为1,如下所示:菜单-> Options --> > Build和Run ->最大并行线程数:将其设置为1。
如果您收到类似于“程序集'XYZ‘已经被Crypto混淆器混淆的错误消息.”运行(CTRL+F5)或调试(F5)解决方案时,请尝试执行“清除”(菜单->Clean菜单项),然后执行运行(CTRL+F5)或调试(F5)。
如果您多次运行向导,每次选择不同的“第一”项目,也可能发生生成失败。此问题通常通过构建日志/输出中的“未找到文件”错误出现。要解决这个问题,从干净的、非集成的..csproj/..vbproj文件开始(向导在修改项目文件之前将原始的非集成项目文件复制到.backup_%timestamp%扩展名;或者,您可以在文本编辑器中打开..csproj/..vbproj文件,并删除向导添加的XML,该向导可以在文件末尾找到该文件)。然后再次运行向导,指定正确的第一个和最后一个项目。
发布于 2019-03-22 19:33:38
在我将VisualStudio2017专业人员的等级从15.9.9降至15.7.6后,我在归档方面遇到了问题,这个问题就消失了。
https://stackoverflow.com/questions/30325311
复制相似问题