Okay, I found the problem. Basically, it boils down to the way CompilerBase is calculating the manifest resource name. If you look inside CompilerBase.GetManifestResourceName (the one with 4 parameters), in ComputerBase.cs, you'll see:
if (resourceLinkage != null && resourceLinkage.IsValid) { manifestResourceName = manifestResourceName.Replace( actualFileName, resourceLinkage.ToString()); } That's basically the problem. When you pass in so.aspx.resx to this function, and get down to this code, manifestResourceName is "so.resources", actualFilename is "so", and resourceLinkage is "ngservices.so". When you do this global string replace of "so" with the resourceLinkage, it find its twice: in the filename and the extension. That's why you get what I saw: ngservices.so.rengservices.sources Of course! It replaced two instances of "so", when clearly you only meant to replace the first one. This will occur any time the root filename is some sub-string of "resources". What I don't get is why all the contortions with String.Replace() here. As near as I can tell, you know that manifestResourceName is always going to be actualFilename + ".resources". So I changed the replace with: manifestResourceName = resourceLinkage.ToString() + ".resources"; and everything seems to be kosher. I'm not sure this is a 100% solution, but it certainly works for me. It's easily reproducible. Create a web project, create a web form named "so.aspx". It will fail when you use the <solution> task. Similarly, there is code above that that does more String.Replace() that could well be broken, too. Hopefully, I've impressed that this is a bad idea, and I'd say that the better idea is to re-write the code in terms of a specialized parser rather than just blindly using String.Replace(). :) - Brad -- Brad Wilson http://www.dotnetdevs.com/ http://dotnetguy.techieswithcats.com/ "Why do I think that people who live and breathe SQL are from a distant alien culture?" - Stuart Celarier on the WTOT mailing list ------------------------------------------------------- This SF.Net email is sponsored by: InterSystems CACHE FREE OODBMS DOWNLOAD - A multidimensional database that combines robust object and relational technologies, making it a perfect match for Java, C++,COM, XML, ODBC and JDBC. www.intersystems.com/match8 _______________________________________________ Nant-users mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/nant-users