I need to combine two relative Uris, e.g. ../mypath/ and myimage.png to create ../mypath/myimage.png. They are not paths to files on disk so Path.Combine is not appropriate (they are relative paths to resources for a web page). new Uri throws an ArgumentOutOfRangeException because the base uri is relative (not absolute).

Do I have any options other than checking for a trailing slash and then combining the paths myself?

EDIT:

Here is a test case that demonstrates that Path.Combine will not work for the case when the first url does not already contain a trailing slash:

// The first case fails with result "../testpath\resource.png"
[TestCase("../testpath", "resource.png", "../testpath/resource.png")] 
[TestCase("../testpath/", "resource.png", "../testpath/resource.png")]
public void TestPathCombine(string path, string resourceName, string expectedResult) {
    string result = Path.Combine(path, resourceName);
    Assert.AreEqual(expectedResult, result);
}
Edit
Report