string ResolveRelative(string targetFile, string srcFile, string relativeFile)
{
//relative to current directory:
var fname = Path.GetFullPath(relativeFile);
if (File.Exists(fname))
return fname;
//relative to source file:
if (srcFile != null)
{
fname = ResolveRelativePath(srcFile, relativeFile);
if (File.Exists(fname))
return fname;
}
//relative to output assembly:
if (targetFile != null)
return ResolveRelativePath(targetFile, relativeFile);
return fname;
}