케이크 스크립트에서 사용자 디렉토리 경로 (절대)가 필요합니다. 빌드 에이전트의 nuget 캐시를 애플리케이션을 빌드하는 도커 컨테이너에 마운트합니다. 어떻게해야합니까?케이크 빌드에서 사용자 디렉토리를 얻는 방법
Directory("~")
이 작동하지 않습니다.
케이크 스크립트에서 사용자 디렉토리 경로 (절대)가 필요합니다. 빌드 에이전트의 nuget 캐시를 애플리케이션을 빌드하는 도커 컨테이너에 마운트합니다. 어떻게해야합니까?케이크 빌드에서 사용자 디렉토리를 얻는 방법
Directory("~")
이 작동하지 않습니다.
일반적으로 Windows 및 * nix에서 사용자 홈 폴더는 환경 변수에 저장됩니다. 이 경우에, 당신은 같은 것을 할 수 있어야한다 :
Task("Default")
.Does(() =>
{
if(IsRunningOnWindows()) {
Information(EnvironmentVariable("HOMEPATH"));
}
else
{
Information(EnvironmentVariable("HOME"));
}
});
위에서 당신이 원하는 것을 포함 가정하면, 당신은 다음 Directory()
에 결과를 전달할 수 있습니다.
UPDATE :
는 다음과 같은 시도 :
Task("Default")
.Does(() =>
{
if(IsRunningOnWindows()) {
Information("{0}{1}", EnvironmentVariable("HOMEDRIVE"), EnvironmentVariable("HOMEPATH"));
} else {
Information(EnvironmentVariable("HOME"));
}
});
Windows에서 위의 값은'/ Users/current_user'를 반환합니다. 'MakeAbsolute (Directory (pathFromEnv))'도 똑같이 반환합니다. Windows의 Docker는 'c : \ Users \ current_user'를 사용하여 올바른 구문을 사용해야합니다. – WebDucer
확인하려면 Windows 또는 * nix에서 실행하고 있습니까? –
둘 다 (우리는 macOS와 Windows 빌드 에이전트가 있습니다) 실행하고 싶기 때문에 사용자 홈 디렉토리의 절대 경로가 필요합니다. 도커 이미지는 .Net Core 빌드 시스템을 기반으로 한 Linux 기반 이미지입니다. 따라서 소스 코드, 너겟 캐시 및 누겟 구성 (비공개 피드)으로 볼륨을 전달해야합니다. 마지막 두 개는 기본적으로 빌드 에이전트의 사용자 디렉토리 (Windows 및 Unix)에 저장됩니다. – WebDucer
이 오류를주고 있습니까? 아니면 그 길을 가르쳐주지 않습니까? 또한이 작업은'var curDir = MakeAbsolute (Directory ("~"));' –
입니다. 오류는 없습니다. 정보 (MakeAbsolute (Directory ("~")))는'c : \ Users \ current_user? '대신에'~'를 값으로 반환한다. – WebDucer