[Mono-dev] [Patch] xbuild, ResXFileRef and relative windows paths

Gert Driesen gert.driesen at telenet.be
Sun Mar 22 03:48:46 EDT 2009


Daniel,

I'm ok with the change, but why not just use MONO_IOMAP?
Will you only replace the Windows directory separator if the file could not
be found?
We should continue to support backslashes in unix paths.

When we start adding such compatibility hacks in multiple class libraries /
tools, then it may be a good time to reconsider implementing it in the
runtime.

Gert

-----Original Message-----
From: Daniel Nauck [mailto:dna at mono-project.de] 
Sent: zaterdag 21 maart 2009 21:12
To: mono-devel-list at ximian.com
Cc: Jain Ankit; Gert Driesen
Subject: [Patch] xbuild, ResXFileRef and relative windows paths

Hello,

i've found 2 problems while i was trying to compile a visual studio project
with xbuild that contains ResXFileRefs.

1.) xbuild doesn't set the BasePath property of
System.Resources.ResXResourceReader.

The first patch fixed this issue. Before that change ResXFileRefs with
relative paths was ralative to the xbuild working dictionary which was wrong
in most cases.

Example:

Project dir: /home/mono/Validator
Resx file in: /home/mono/Validator/Properties/Resources.resx
with ResXFileRef: <value>..\Resources\dialog.bmp;System.Drawing.Bitmap,[...]
Bitmap in: /home/mono/Validator/Resources/dialog.bmp

During compiling resolved to:
/home/mono/Validator/..\Resources\dialog.bmp

With the patch the result is:
/home/mono/Validator/Properties/..\Resources\dialog.bmp

@Ankit: Please approve and let me know if its ok to commit, thanks.



2.) ResXFileRef class is not abel to handle resx files with file refs that
contains windows paths. This happens when you use for example visual studio
and add images or other file refs to your resource files.

It looks like this:

<data name="dialog" type="System.Resources.ResXFileRef,
System.Windows.Forms">
<value>..\Resources\dialog.bmp;System.Drawing.Bitmap, System.Drawing,
Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>

the resulting file path is:
/home/mono/Validator/Properties/..\Resources\dialog.bmp

So the second patch implements compability to resx files with file refs that
was generated under windows and replaces the windows path separator with the
unix path separator (if required).

xbuild does the same with paths in visual studio projects for compability
reasons.

I also talked to Miguel if this compability is ok. He is fine with it.

@Gert: Please approve and let me know if its ok to commit, thanks.



Thanks
Daniel


Internal Virus Database is out of date.
Checked by AVG - http://www.avg.com
Version: 8.0.176 / Virus Database: 270.11.18/2008 - Release Date: 3/17/2009
4:25 PM



More information about the Mono-devel-list mailing list