UriFormatException «Не удалось проанализировать орган/хост», относительный URI файла, только для LinuxLinux

Ответить
Anonymous
 UriFormatException «Не удалось проанализировать орган/хост», относительный URI файла, только для Linux

Сообщение Anonymous »

Я получаю эту ошибку при попытке собрать абсолютный URI файла, используя в первую очередь относительный URI файла, с синтаксисом file: или file:./ для относительного URI.
Есть идеи, почему в Linux это ведет себя по-другому? Он намеренно добавлен в абсолютную часть URI, чтобы не иметь полномочий или буквы диска.
Ошибка возникает только в Linux (базовый образ Docker mcr.microsoft.com/dotnet/ sdk:8.0), не под Windows. Обратите внимание: код компилируется в Windows и выполняется в качестве теста в общей папке в контейнере Docker.
[TestMethod]
[DataRow("first/second/filename.txt", null, "/first/second/filename.txt")] // OK
[DataRow("file:./first/second/filename.txt", "file", "/first/second/filename.txt")] // fails
[DataRow("file:first/second/filename.txt", "file", "/first/second/filename.txt")] // fails
public void MyFileUriTest_Relative(string uriString, string? expScheme, string? expPathAndQuery)
{
var uri = new Uri(uriString, UriKind.Relative);
var absBase = new Uri("file:///", UriKind.Absolute);
var absUri = new Uri(absBase, uri); // error here!

// other test code, irrelevant here.
}

Трассировка стека:
Uri.CreateThis(String uri, Boolean dontEscape, UriKind uriKind, UriCreationOptions& creationOptions)
Uri.ctor(Uri baseUri, Uri relativeUri)
MyFileUriTests.MyFileUriTest_Relative(String uriString, String expScheme, String expPathAndQuery) line 101
(+ test stack trace)


Подробнее здесь: https://stackoverflow.com/questions/787 ... e-file-uri
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»