hi,

i'm using NAnt to build my 25 projects VS.Net solution (don't ask me why there are so 
many), I just had problems with the resources file names in my Web project (all the 
.resx files).

Here is what I got :

System.ArgumentException: Illegal characters in path.
   at System.IO.Path.Combine(String path1, String path2)
   at NAnt.VSNet.ProjectSettings.GetTemporaryFilename(String fileName) in D:\My 
Documents\NAnt\nant-0.8.4b2_OK\src\NAnt.VSNet\ProjectSettings.cs:line 142


I looked at the code and found out that it was actually parsing (with a RegExp) the 
.cs files assiociated with each resource in order to get a classname. The classname 
would be of use to determine the temporary compiled resource file name. The bug came 
when this line was in my source code :

string l_str_temp = "<div class=\"QuotasGauge\" style=\"WIDTH:" + 
WIDTH_GAUGE.ToString() + "px;\">";

The regexp then found this : =\"QuotasGauge\" style=\"WIDTH
which obviously contains invalid caracters for a file name.

I don't why scanning the source files is a good idea, sounds dangerous to me. I 
locally fixed the code for my needs by forcing the alternative way of determining the 
compiled resource file name :

in function CompileResx() in Resources.cs, just ignore the follwing test
if (!StringUtils.IsNullOrEmpty(_dependentFile)) 
and let the else block with the StringBuilder do the job

Can anyone tell me why the sources are scanned, and if this will be fixed (change of 
behavior or better RegExp) ?


By the way, thanks for this great solution task, i'm eager to get a more recent build 
with assemblyfolders working, as I can only rely on nightly builds because I can't get 
a CVS client working from where I am...

cheers,
vincent

+,~wzf+,좷o$yyzW(h礅zxm&j{n왨x%Mj{n+-.ǟalb,y+޷b?+-wv

Reply via email to