yck1509 / ConfuserEx

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

System.FormatException: (Index (zero based) #165

Open cgocgo opened 9 years ago

cgocgo commented 9 years ago

I have a small solution that obfuscates successfully running the ConfuserEx UI (v0.4.0). My problem is when I try to run it via the command line on the form confuserex.cli.exe -n -o=outputdirectory file1 file2 file3 file4 This results in a crash in the Renaming phase. See picture. image

It works when running the commandline with the project-file as an argument. But I can't use the project file since the file paths varies depending on which build server I get for the moment.

I can see a number of reasons.

ErrCode commented 9 years ago

I'm also encountering this error when using the command line and Declarative Obfuscation (attributes).

Exception: System.FormatException: Index (zero based) must be greater than or equal to zero and less than the size of the argument list.
1>     at System.Text.StringBuilder.AppendFormat(IFormatProvider provider, String format, Object[] args)
1>     at System.String.Format(IFormatProvider provider, String format, Object[] args)
1>     at Confuser.CLI.Program.ConsoleLogger.ErrorFormat(String format, Object[] args) in e:\Source\Public\Confuser2\Confuser.CLI\Program.cs:line 168
1>     at Confuser.Core.ProtectionPipeline.<>c__DisplayClass15.<Filter>b__e(IDnlibDef def) in e:\Source\Public\Confuser2\Confuser.Core\ProtectionPipeline.cs:line 177
1>     at System.Linq.Enumerable.WhereListIterator`1.MoveNext()
1>     at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
1>     at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
1>     at Confuser.Core.ProtectionPipeline.Filter(ConfuserContext context, IList`1 targets, ProtectionPhase phase) in e:\Source\Public\Confuser2\Confuser.Core\ProtectionPipeline.cs:line 172
1>     at Confuser.Core.ProtectionPipeline.ExecuteStage(PipelineStage stage, Action`1 func, Func`1 targets, ConfuserContext context) in e:\Source\Public\Confuser2\Confuser.Core\ProtectionPipeline.cs:line 141
1>     at Confuser.Core.ConfuserEngine.RunPipeline(ProtectionPipeline pipeline, ConfuserContext context) in e:\Source\Public\Confuser2\Confuser.Core\ConfuserEngine.cs:line 214
1>     at Confuser.Core.ConfuserEngine.RunInternal(ConfuserParameters parameters, CancellationToken token) in e:\Source\Public\Confuser2\Confuser.Core\ConfuserEngine.cs:line 160
yck1509 commented 9 years ago

Please try the latest build at the CI server and see whether your issue still presents.

DerFetzer commented 9 years ago

I had the same error. The latest build solved the issue for me. Thank you.