diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/FileBasedProgramsResources.resx b/src/Cli/Microsoft.DotNet.FileBasedPrograms/FileBasedProgramsResources.resx
index 1161700f99d9..0af28bb5fd1f 100644
--- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/FileBasedProgramsResources.resx
+++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/FileBasedProgramsResources.resx
@@ -169,4 +169,7 @@
Unrecognized directive '{0}'.{0} is the directive name like 'package' or 'sdk'.
-
\ No newline at end of file
+
+ Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix.
+
+
diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.cs.xlf b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.cs.xlf
index d2dd3b59202f..e2ff54b63ea7 100644
--- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.cs.xlf
+++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.cs.xlf
@@ -27,6 +27,11 @@
Duplicitní direktivy nejsou podporovány: {0}{0} is the directive type and name.
+
+ Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix.
+ Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix.
+
+ The directive should contain a name without special characters and an optional value separated by '{1}' like '#:{0} Name{1}Value'.Direktiva by měla obsahovat název bez speciálních znaků a volitelnou hodnotu oddělenou znakem {1}, například #:{0} Název{1}Hodnota.
diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.de.xlf b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.de.xlf
index 13eb91fbaee3..35ea65672d5f 100644
--- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.de.xlf
+++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.de.xlf
@@ -27,6 +27,11 @@
Doppelte Anweisungen werden nicht unterstützt: {0}{0} is the directive type and name.
+
+ Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix.
+ Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix.
+
+ The directive should contain a name without special characters and an optional value separated by '{1}' like '#:{0} Name{1}Value'.Die Anweisung sollte einen Namen ohne Sonderzeichen und einen optionalen Wert enthalten, die durch „{1}“ getrennt sind, wie „#:{0} Name{1}Wert“.
diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.es.xlf b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.es.xlf
index 38d1daaa07ae..52838d81d438 100644
--- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.es.xlf
+++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.es.xlf
@@ -27,6 +27,11 @@
No se admiten directivas duplicadas: {0}{0} is the directive type and name.
+
+ Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix.
+ Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix.
+
+ The directive should contain a name without special characters and an optional value separated by '{1}' like '#:{0} Name{1}Value'.La directiva debe contener un nombre sin caracteres especiales y un valor opcional separado por "{1}" como "#:{0} Nombre{1}Valor".
diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.fr.xlf b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.fr.xlf
index e034912dd36e..c72828f206e1 100644
--- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.fr.xlf
+++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.fr.xlf
@@ -27,6 +27,11 @@
Les directives dupliquées ne sont pas prises en charge : {0}{0} is the directive type and name.
+
+ Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix.
+ Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix.
+
+ The directive should contain a name without special characters and an optional value separated by '{1}' like '#:{0} Name{1}Value'.La directive dans doit contenir un nom sans caractères spéciaux et une valeur facultative séparée par « {1} » comme « # :{0} Nom{1}Valeur ».
diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.it.xlf b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.it.xlf
index 846df0ee663f..1ef99c9b7878 100644
--- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.it.xlf
+++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.it.xlf
@@ -27,6 +27,11 @@
Le direttive duplicate non supportate: {0}{0} is the directive type and name.
+
+ Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix.
+ Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix.
+
+ The directive should contain a name without special characters and an optional value separated by '{1}' like '#:{0} Name{1}Value'.La direttiva deve contenere un nome senza caratteri speciali e un valore facoltativo delimitato da '{1}' come '#:{0}Nome {1}Valore'.
diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.ja.xlf b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.ja.xlf
index 18e3732d59d1..9c3d5d6397c9 100644
--- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.ja.xlf
+++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.ja.xlf
@@ -27,6 +27,11 @@
重複するディレクティブはサポートされていません: {0}{0} is the directive type and name.
+
+ Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix.
+ Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix.
+
+ The directive should contain a name without special characters and an optional value separated by '{1}' like '#:{0} Name{1}Value'.ディレクティブには、特殊文字を含まない名前と、'#:{0} Name{1}Value' などの '{1}' で区切られた省略可能な値を含める必要があります。
diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.ko.xlf b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.ko.xlf
index d65519a8a4e0..5fec6b68dc06 100644
--- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.ko.xlf
+++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.ko.xlf
@@ -27,6 +27,11 @@
중복 지시문은 지원되지 않습니다. {0}{0} is the directive type and name.
+
+ Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix.
+ Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix.
+
+ The directive should contain a name without special characters and an optional value separated by '{1}' like '#:{0} Name{1}Value'.지시문에는 특수 문자가 없는 이름과 '#:{0} 이름{1}값'과 같이 '{1}'(으)로 구분된 선택적 값이 포함되어야 합니다.
diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.pl.xlf b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.pl.xlf
index 4cf66127fa52..6a095b940a51 100644
--- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.pl.xlf
+++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.pl.xlf
@@ -27,6 +27,11 @@
Zduplikowane dyrektywy nie są obsługiwane: {0}{0} is the directive type and name.
+
+ Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix.
+ Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix.
+
+ The directive should contain a name without special characters and an optional value separated by '{1}' like '#:{0} Name{1}Value'.Dyrektywa powinna zawierać nazwę bez znaków specjalnych i opcjonalną wartość rozdzieloną znakiem "{1}#:{0} Name{1}Value".
diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.pt-BR.xlf b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.pt-BR.xlf
index 732bdffaeaba..bc90e2b2187d 100644
--- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.pt-BR.xlf
+++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.pt-BR.xlf
@@ -27,6 +27,11 @@
Diretivas duplicadas não são suportadas:{0}{0} is the directive type and name.
+
+ Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix.
+ Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix.
+
+ The directive should contain a name without special characters and an optional value separated by '{1}' like '#:{0} Name{1}Value'.A diretiva deve conter um nome sem caracteres especiais e um valor opcional separado por '{1}' como '#:{0} Nome{1}Valor'.
diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.ru.xlf b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.ru.xlf
index ca7d77675a4f..2cce6fdb2ccf 100644
--- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.ru.xlf
+++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.ru.xlf
@@ -27,6 +27,11 @@
Повторяющиеся директивы не поддерживаются: {0}{0} is the directive type and name.
+
+ Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix.
+ Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix.
+
+ The directive should contain a name without special characters and an optional value separated by '{1}' like '#:{0} Name{1}Value'.Директива должна содержать имя без специальных символов и необязательное значение, разделенные символом-разделителем "{1}", например "#:{0} Имя{1}Значение".
diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.tr.xlf b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.tr.xlf
index aa8bf66a3cdc..83009813c12b 100644
--- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.tr.xlf
+++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.tr.xlf
@@ -27,6 +27,11 @@
Yinelenen yönergeler desteklenmez: {0}{0} is the directive type and name.
+
+ Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix.
+ Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix.
+
+ The directive should contain a name without special characters and an optional value separated by '{1}' like '#:{0} Name{1}Value'.Yönerge, özel karakterler içermeyen bir ad ve ‘#:{0} Ad{1}Değer’ gibi '{1}' ile ayrılmış isteğe bağlı bir değer içermelidir.
diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.zh-Hans.xlf b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.zh-Hans.xlf
index 7a3b8fdc7a4e..1a31fe1a755c 100644
--- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.zh-Hans.xlf
+++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.zh-Hans.xlf
@@ -27,6 +27,11 @@
不支持重复指令: {0}{0} is the directive type and name.
+
+ Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix.
+ Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix.
+
+ The directive should contain a name without special characters and an optional value separated by '{1}' like '#:{0} Name{1}Value'.该指令应包含一个不带特殊字符的名称,以及一个以 '#:{0} Name{1}Value' 等 ‘{1}’ 分隔的可选值。
diff --git a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.zh-Hant.xlf b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.zh-Hant.xlf
index d865da88d7d8..d2b441fee0d5 100644
--- a/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.zh-Hant.xlf
+++ b/src/Cli/Microsoft.DotNet.FileBasedPrograms/xlf/FileBasedProgramsResources.zh-Hant.xlf
@@ -27,6 +27,11 @@
不支援重複的指示詞: {0}{0} is the directive type and name.
+
+ Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix.
+ Unable to determine a temporary directory path. Consider configuring the TEMP environment variable on Windows or local app data folder on Unix.
+
+ The directive should contain a name without special characters and an optional value separated by '{1}' like '#:{0} Name{1}Value'.指示詞應包含不含特殊字元的名稱,以及 '{1}' 分隔的選用值,例如 '#:{0} Name{1}Value'。
diff --git a/src/Cli/dotnet/Commands/Run/VirtualProjectBuildingCommand.cs b/src/Cli/dotnet/Commands/Run/VirtualProjectBuildingCommand.cs
index ddd68ad109f5..02ebd3021ec3 100644
--- a/src/Cli/dotnet/Commands/Run/VirtualProjectBuildingCommand.cs
+++ b/src/Cli/dotnet/Commands/Run/VirtualProjectBuildingCommand.cs
@@ -1132,6 +1132,11 @@ public static string GetTempSubdirectory()
? Path.GetTempPath()
: Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);
+ if (string.IsNullOrEmpty(directory))
+ {
+ throw new InvalidOperationException(FileBasedProgramsResources.EmptyTempPath);
+ }
+
return Path.Join(directory, "dotnet", "runfile");
}