yck1509 / ConfuserEx

An open-source, free protector for .NET applications
http://yck1509.github.io/ConfuserEx/
Other
3.58k stars 1.64k forks source link

Error of type resolution (TypeResolveException) when BackgroundWorker is used in Windows Phone assembly #59

Closed soni-maulik closed 10 years ago

soni-maulik commented 10 years ago

I made an assembly for Windows Phone 8 (using Visual Studio Express). I wanted to test obfuscators if any is suitable to use personally and commercially. But it throws TypeResolveException as one can see below. I checked issue 27, but here is not the same case.

. . . [INFO] Resolving dependencies... [DEBUG] Checking Strong Name... [DEBUG] Creating global .cctors... [DEBUG] Watermarking... [DEBUG] Executing 'Name analysis' phase... [DEBUG] Building VTables & identifier list... [DEBUG] Analyzing... [ERROR] Failed to resolve a type, check if all dependencies are of correct version. Exception: dnlib.DotNet.TypeResolveException: Could not resolve type: System.ComponentModel.BackgroundWorker at dnlib.DotNet.TypeRef.ResolveThrow() in e:\Source\Public\Confuser2\dnlib\src\DotNet\TypeRef.cs:line 331 at Confuser.Renamer.Analyzers.InterReferenceAnalyzer.Analyze(ConfuserContext context, INameService service, IDnlibDef def) in e:\Source\Public\Confuser2\Confuser.Renamer\Analyzers\InterReferenceAnalyzer.cs:line 24 at Confuser.Renamer.AnalyzePhase.Analyze(NameService service, ConfuserContext context, ProtectionParameters parameters, IDnlibDef def, Boolean runAnalyzer) in e:\Source\Public\Confuser2\Confuser.Renamer\AnalyzePhase.cs:line 74 at Confuser.Renamer.AnalyzePhase.Execute(ConfuserContext context, ProtectionParameters parameters) in e:\Source\Public\Confuser2\Confuser.Renamer\AnalyzePhase.cs:line 52 at Confuser.Core.ProtectionPipeline.ExecuteStage(PipelineStage stage, Action1 func, Func1 targets, ConfuserContext context) in e:\Source\Public\Confuser2\Confuser.Core\ProtectionPipeline.cs:line 138 at Confuser.Core.ConfuserEngine.RunPipeline(ProtectionPipeline pipeline, ConfuserContext context) in e:\Source\Public\Confuser2\Confuser.Core\ConfuserEngine.cs:line 197 at Confuser.Core.ConfuserEngine.RunInternal(ConfuserParameters parameters, CancellationToken token) in e:\Source\Public\Confuser2\Confuser.Core\ConfuserEngine.cs:line 159 [ERROR] ---BEGIN DEBUG INFO--- [ERROR] Installed Framework Versions: [ERROR] v3.0
[ERROR] v3.0
[ERROR] v4
[ERROR] Client 4.5.50709 [ERROR] Full 4.5.50709 [ERROR] v4.0
[ERROR] Client 4.0.0.0 [ERROR] v4.5 378389 [ERROR] Cached assemblies: [ERROR] WebServiceHelper, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null (D:\MSoni_E\Obfuscator\ConfuserEx\ProjectsIn\WebServiceHelper.dll) [ERROR] mscorlib, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e, Retargetable=Yes (C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETPortable\v4.0\mscorlib.dll) [ERROR] mscorlib, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e, Retargetable=Yes (C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETPortable\v4.0\mscorlib.dll) [ERROR] System, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e, Retargetable=Yes (C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETPortable\v4.0\System.dll) [ERROR] System, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e, Retargetable=Yes (C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETPortable\v4.0\System.dll) [ERROR] System.Net, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e, Retargetable=Yes (C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETPortable\v4.0\System.Net.dll) [ERROR] System.Net, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e, Retargetable=Yes (C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETPortable\v4.0\System.Net.dll) [ERROR] WebServiceHelper, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null (D:\MSoni_E\Obfuscator\ConfuserEx\ProjectsIn\WebServiceHelper.dll) [ERROR] System.Windows, Version=5.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e (C:\Program Files\Microsoft Silverlight\5.1.20913.0\System.Windows.dll) [ERROR] System.Windows, Version=5.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e (C:\Program Files\Microsoft Silverlight\5.1.20913.0\System.Windows.dll) [ERROR] ---END DEBUG INFO---

Failed at 3:16 PM, 0:00 elapsed.

yck1509 commented 10 years ago

In fact, it should be related to #50; #50 is about Xamarin Android and this issue is about WP8.

WP8 uses it's own set of libraries so ConfuserEx can't find them. You'll have to specified where to find the reference libraries using the instructions in wiki, and use the correct SDK reference library path as the probe paths (e.g. C:\Program Files\Reference Assemblies\Microsoft\Framework\WindowsPhone\v8.0).

soni-maulik commented 10 years ago

Added possible ProbePaths for Phone related SDK. But same error occuring. Trying to investigate more, will post if something useful.

yck1509 commented 10 years ago

Oh you'll have to use the latest source code. Try https://ci.appveyor.com/project/yck1509/confuserex/build/artifacts

soni-maulik commented 10 years ago

Latest build worked fine. Closing issue.