Мне нужен путь к пользовательскому каталогу (абсолютный) в моем скрипте торта, чтобы смонтировать кеш nuget агента сборки в контейнер докера, который создает приложение. Как мне их получить?
Directory("~")
не работает.
Мне нужен путь к пользовательскому каталогу (абсолютный) в моем скрипте торта, чтобы смонтировать кеш nuget агента сборки в контейнер докера, который создает приложение. Как мне их получить?
Directory("~")
не работает.
Как правило, и в Windows, и в *nix домашняя папка пользователя хранится в переменной среды. В этом случае вы сможете сделать что-то вроде этого:
Task("Default")
.Does(() =>
{
if(IsRunningOnWindows()) {
Information(EnvironmentVariable("HOMEPATH"));
}
else
{
Information(EnvironmentVariable("HOME"));
}
});
Предполагая, что приведенное выше содержит то, что вы хотите, вы можете передать результат Directory()
.
ОБНОВИТЬ:
Попробуйте следующее:
Task("Default")
.Does(() =>
{
if(IsRunningOnWindows()) {
Information("{0}{1}", EnvironmentVariable("HOMEDRIVE"), EnvironmentVariable("HOMEPATH"));
} else {
Information(EnvironmentVariable("HOME"));
}
});
/Users/current_user
в качестве значения. MakeAbsolute(Directory(pathFromEnv))
возвращает то же самое. Docker в Windows нуждается в правильном синтаксисе с c:\Users\current_user
.
- person WebDucer; 06.09.2017
Environment.GetFolderPath(Environment.SpecialFolder.UserProfile)
?
- person me--; 20.09.2018
var curDir = MakeAbsolute(Directory("~"));
- person Tarun Lalwani   schedule 06.09.2017Information(Directory("~"));
иInformation(MakeAbsolute(Directory("~")));
возвращают оба~
в качестве значения вместоc:\Users\current_user?
. - person WebDucer   schedule 06.09.2017