Hello.

      I patched RegGen task to fully support /compile resgen.exe
      option.

      Your old code looks like:

               if (Compile) {
                      bool addComma = false;
                        writer.Write(" /compile" );

                        foreach (string fileName in Resources.FileNames) {
                            if ( addComma ) {
                                writer.Write(",{0}",fileName );
                            } else {
                                writer.Write("{0}",fileName );
                                addComma = true;
                            }
                        }
                    
      which constructs such arguments for resgen:
      /compile 
filename1.from.fileset,filename2.from.fileset,filename3.from.fileset,...  outputfile

      this is invalid, because resgen wants arguments to look like:
      /compile filename1.from.fileset,some.output.name 
filename2.from.fileset,some.output.name2 ...

      But fileset (resources) only defines source files and it can't define output file
      names, so in my version resgen generates resources with default file names 
(filename +
      ".resources") and places them in source file directory.

      Now it's possible to generate resource for dir tree like

      Resources/strings.txt
      Resources/es/strings.txt
      Resources/fr/strings.txt
      ...

      by task:
                <resgen compile="true">
                        <resources basedir="${source.dir}/Resources">
                                <includes name="**.txt"/>
                        </resources>
                </resgen>               
      
      
      and get .resources files in the same directories where source txt files reside.

      PS In future, I think, it will be great to have possibility to force generated 
resources get some
      non-default names with something like ant's <mapper>.

      Best regards,
      MaxMP             mailto:[EMAIL PROTECTED]

Attachment: ResGenTask.cs
Description: Binary data

Reply via email to