Я занимаюсь разработкой приложения .NET Core (dotnet) на C #, которое должно работать в Windows 10, Linux И в подсистеме Linux, которое можно установить в Windows 10.
Проблема в том, что приложение должно хранить файлы в общем месте, чтобы позволить другому приложению использовать их. То есть другие приложения (которые являются клиентами) должны разрешать тот же путь, что и это приложение. Таким образом, один и тот же код должен быть добавлен во всех клиентах, чтобы знать, где хранятся файлы.
Я много искал и нашел это решение:
Console.WriteLine(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData));
Это возвращает меня в Windows:
C:\ProgramData
И в Linux:
/usr/share
Мне нравится это решение, но проблема здесь в том, что когда программа работает в подсистеме Linux, я хочу использовать путь, к которому можно получить доступ из приложений, работающих под Windows.
Я знаю, что Windows монтируется в / mnt / c / в подсистеме Linux, но вы не хотите иметь жестко закодированные пути.
Есть ли способ программно (в подсистеме Linux) проложить путь на хосте Windows? То есть, если программа работает в Linux изначально, путь, который возвращается, равен / usr / share НО, если это подсистема, путь, который возвращается, равен / mnt / c / ProgramData ( или что-то подобное).
Спасибо!