yck1509 / ConfuserEx

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

DnLib: Failed to resolve assembly even though it's listed as a cached assembly #104

Closed sushiat closed 9 years ago

sushiat commented 10 years ago

Hi, I'm trying to confuse a simple solution containing a windows service and a small wpf application. I used my crproj file from another wpf program that's confusing fine and the windows service is working fine here too. But when trying to confuse the wpf application I'm getting the following error message:

[ERROR] Failed to resolve a assembly, check if all dependencies are of correct version. Exception: dnlib.DotNet.AssemblyResolveException: Could not resolve assembly: LYIT SoftwareUpdater, Version=0.0.0.0, Culture=neutral, PublicKeyToken=0dc5d78091ada969

... a few lines later ...

[ERROR] Cached assemblies: [ERROR] LYIT SoftwareUpdater, Version=1.0.0.0, Culture=neutral, PublicKeyToken=0dc5d78091ada969 (C:\Source\Tools\SoftwareUpdater\SoftwareUpdater\bin\Release\LYIT SoftwareUpdater.exe)

Why is confuserEx trying to get version 0.0.0.0 or is that just a generic term for any version? Or is it the space in the EXE file name (none of my other projects had one so far)?

Also on a side note, whenever the confuser.cli program encounters this error it triggers a secondary exception that crashed the CLI program:

Unhandled Exception: System.AggregateException: AggregateException_ctor_DefaultM essage ---> System.NullReferenceException: Object reference not set to an instan ce of an object. at Confuser.Core.ConfuserEngine.PrintEnvironmentInfo(ConfuserContext context) in e:\Source\Public\Confuser2\Confuser.Core\ConfuserEngine.cs:line 495 at Confuser.Core.ConfuserEngine.RunInternal(ConfuserParameters parameters, Ca ncellationToken token) in e:\Source\Public\Confuser2\Confuser.Core\ConfuserEngin e.cs:line 166 at Confuser.Core.ConfuserEngine.<>cDisplayClass1.b0() in e:\Source\P ublic\Confuser2\Confuser.Core\ConfuserEngine.cs:line 56 at System.Threading.Tasks.Task.InnerInvoke() at System.Threading.Tasks.Task.Execute() --- End of inner exception stack trace --- at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationTo ken cancellationToken) at System.Threading.Tasks.Task.Wait() at Confuser.CLI.Program.Main(String[] args) in e:\Source\Public\Confuser2\Con fuser.CLI\Program.cs:line 44 ---> (Inner Exception #0) System.NullReferenceException: Object reference not se t to an instance of an object. at Confuser.Core.ConfuserEngine.PrintEnvironmentInfo(ConfuserContext context) in e:\Source\Public\Confuser2\Confuser.Core\ConfuserEngine.cs:line 495 at Confuser.Core.ConfuserEngine.RunInternal(ConfuserParameters parameters, Ca ncellationToken token) in e:\Source\Public\Confuser2\Confuser.Core\ConfuserEngin e.cs:line 166 at Confuser.Core.ConfuserEngine.<>cDisplayClass1.b0() in e:\Source\P ublic\Confuser2\Confuser.Core\ConfuserEngine.cs:line 56 at System.Threading.Tasks.Task.InnerInvoke() at System.Threading.Tasks.Task.Execute()<---

Any tips on what I'm doing wrong here are greatly appreciated!

Thx, Markus

sushiat commented 10 years ago

Ok I played a bit more with it and it is indeed the space in the assembly name that's causing the problem...the default namespace did not contain any spaces btw..