ケーキスクリプトでユーザーディレクトリのパス(絶対パス)を使用して、ビルドエージェントのナゲットキャッシュをドッキングコンテナーにマウントし、アプリケーションをビルドします。どうすれば入手できますか?ケーキビルドでユーザーディレクトリを取得する方法
Directory("~")
は機能しません。
ケーキスクリプトでユーザーディレクトリのパス(絶対パス)を使用して、ビルドエージェントのナゲットキャッシュをドッキングコンテナーにマウントし、アプリケーションをビルドします。どうすれば入手できますか?ケーキビルドでユーザーディレクトリを取得する方法
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(ディレクトリ(pathFromEnv))'は同じことを返します。 Windows上のDockerは、 'c:\ Users \ current_user'で正しい構文を必要とします。 – WebDucer
確認するには、Windowsまたは* nixで実行していますか? –
私は両方(macOSとWindowsのビルドエージェントを持っている)で実行したいので、ユーザのホームディレクトリの絶対パスが必要です。ドッカーのイメージは、Linuxの.Net Coreビルドシステムに基づいています。だから私はソースコード、ナゲットキャッシュとナゲット設定(プライベートフィード)でボリュームを渡す必要があります。最後の2つは、デフォルトでビルドエージェントのユーザディレクトリ(WindowsおよびUnix上)に保存されます。 – WebDucer
これはエラーを与えていますか?それとも道を与えないのですか? 'var curDir = MakeAbsolute(Directory("〜 "));' –
いいえ、エラーはありません。情報( ''〜 '') ''と ''情報(MakeAbsolute(Directory( "〜")))は 'c:\ Users \ current_user?'の代わりに '' ''を値として返します。 – WebDucer