diff --git a/global.json b/global.json
index 6817ab93a225..a3afdaf0c5c0 100644
--- a/global.json
+++ b/global.json
@@ -1,6 +1,6 @@
{
"tools": {
- "dotnet": "3.0.100-preview7-012270",
+ "dotnet": "3.0.100-preview7-012402",
"vs-opt": {
"version": "15.9"
}
diff --git a/src/Tasks/Common/Resources/Strings.resx b/src/Tasks/Common/Resources/Strings.resx
index 49125a90905e..6d6ae6482d29 100644
--- a/src/Tasks/Common/Resources/Strings.resx
+++ b/src/Tasks/Common/Resources/Strings.resx
@@ -538,4 +538,16 @@ The following are names of parameters or literal values and should not be transl
NETSDK1104: RollForward value '{0}' is invalid. Allowed values are {1}.{StrBegin="NETSDK1104: "}
+
+ NETSDK1105: Windows desktop applications are only supported on .NET Core 3.0 or higher.
+ {StrBegin="NETSDK1105: "}
+
+
+ NETSDK1107: Microsoft.NET.Sdk.WindowsDesktop is required to build Windows desktop applications. 'UseWpf' and 'UseWindowsForms' are not supported by the current SDK.
+ {StrBegin="NETSDK1107: "}
+
+
+ NETSDK1106: Microsoft.NET.Sdk.WindowsDesktop requires 'UseWpf' or 'UseWindowsForms' to be set to 'true'
+ {StrBegin="NETSDK1106: "}
+
diff --git a/src/Tasks/Common/Resources/xlf/Strings.cs.xlf b/src/Tasks/Common/Resources/xlf/Strings.cs.xlf
index c20864b2f6c1..ea9aabeb13c9 100644
--- a/src/Tasks/Common/Resources/xlf/Strings.cs.xlf
+++ b/src/Tasks/Common/Resources/xlf/Strings.cs.xlf
@@ -516,11 +516,26 @@ The following are names of parameters or literal values and should not be transl
NETSDK1045: Aktuální sada .NET SDK nepodporuje cílení {0} {1}. Buď zacilte {0} {2} nebo nižší, nebo použijte verzi sady .NET SDK, která podporuje {0} {1}.{StrBegin="NETSDK1045: "}
+
+ NETSDK1107: Microsoft.NET.Sdk.WindowsDesktop is required to build Windows desktop applications. 'UseWpf' and 'UseWindowsForms' are not supported by the current SDK.
+ NETSDK1107: Microsoft.NET.Sdk.WindowsDesktop is required to build Windows desktop applications. 'UseWpf' and 'UseWindowsForms' are not supported by the current SDK.
+ {StrBegin="NETSDK1107: "}
+ NETSDK1057: You are using a preview version of .NET Core. See: https://aka.ms/dotnet-core-previewNETSDK1057: Používáte preview verzi .NET Core. Další informace: https://aka.ms/dotnet-core-preview{StrBegin="NETSDK1057: "}
+
+ NETSDK1106: Microsoft.NET.Sdk.WindowsDesktop requires 'UseWpf' or 'UseWindowsForms' to be set to 'true'
+ NETSDK1106: Microsoft.NET.Sdk.WindowsDesktop requires 'UseWpf' or 'UseWindowsForms' to be set to 'true'
+ {StrBegin="NETSDK1106: "}
+
+
+ NETSDK1105: Windows desktop applications are only supported on .NET Core 3.0 or higher.
+ NETSDK1105: Windows desktop applications are only supported on .NET Core 3.0 or higher.
+ {StrBegin="NETSDK1105: "}
+ NETSDK1100: Windows is required to build Windows desktop applications.NETSDK1100: Windows is required to build Windows desktop applications.
diff --git a/src/Tasks/Common/Resources/xlf/Strings.de.xlf b/src/Tasks/Common/Resources/xlf/Strings.de.xlf
index 278a4d51ff80..99a7b95e4e61 100644
--- a/src/Tasks/Common/Resources/xlf/Strings.de.xlf
+++ b/src/Tasks/Common/Resources/xlf/Strings.de.xlf
@@ -516,11 +516,26 @@ The following are names of parameters or literal values and should not be transl
NETSDK1045: Das aktuelle .NET SDK unterstützt {0} {1} nicht als Ziel. Geben Sie entweder {0} {2} oder niedriger als Ziel an, oder verwenden Sie eine .NET SDK-Version, die {0} {1} unterstützt.{StrBegin="NETSDK1045: "}
+
+ NETSDK1107: Microsoft.NET.Sdk.WindowsDesktop is required to build Windows desktop applications. 'UseWpf' and 'UseWindowsForms' are not supported by the current SDK.
+ NETSDK1107: Microsoft.NET.Sdk.WindowsDesktop is required to build Windows desktop applications. 'UseWpf' and 'UseWindowsForms' are not supported by the current SDK.
+ {StrBegin="NETSDK1107: "}
+ NETSDK1057: You are using a preview version of .NET Core. See: https://aka.ms/dotnet-core-previewNETSDK1057: Sie verwenden eine Vorschauversion von .NET Core. Weitere Informationen: https://aka.ms/dotnet-core-preview{StrBegin="NETSDK1057: "}
+
+ NETSDK1106: Microsoft.NET.Sdk.WindowsDesktop requires 'UseWpf' or 'UseWindowsForms' to be set to 'true'
+ NETSDK1106: Microsoft.NET.Sdk.WindowsDesktop requires 'UseWpf' or 'UseWindowsForms' to be set to 'true'
+ {StrBegin="NETSDK1106: "}
+
+
+ NETSDK1105: Windows desktop applications are only supported on .NET Core 3.0 or higher.
+ NETSDK1105: Windows desktop applications are only supported on .NET Core 3.0 or higher.
+ {StrBegin="NETSDK1105: "}
+ NETSDK1100: Windows is required to build Windows desktop applications.NETSDK1100: Windows is required to build Windows desktop applications.
diff --git a/src/Tasks/Common/Resources/xlf/Strings.es.xlf b/src/Tasks/Common/Resources/xlf/Strings.es.xlf
index 1a6f1b70c1d3..7fe2decad144 100644
--- a/src/Tasks/Common/Resources/xlf/Strings.es.xlf
+++ b/src/Tasks/Common/Resources/xlf/Strings.es.xlf
@@ -516,11 +516,26 @@ The following are names of parameters or literal values and should not be transl
NETSDK1045: El SDK de .NET actual no admite el destino {0} {1}. Use el destino {0} {2} u otro inferior, o bien una versión del SDK de .NET que admita {0} {1}.{StrBegin="NETSDK1045: "}
+
+ NETSDK1107: Microsoft.NET.Sdk.WindowsDesktop is required to build Windows desktop applications. 'UseWpf' and 'UseWindowsForms' are not supported by the current SDK.
+ NETSDK1107: Microsoft.NET.Sdk.WindowsDesktop is required to build Windows desktop applications. 'UseWpf' and 'UseWindowsForms' are not supported by the current SDK.
+ {StrBegin="NETSDK1107: "}
+ NETSDK1057: You are using a preview version of .NET Core. See: https://aka.ms/dotnet-core-previewNETSDK1057: Está utilizando una versión preliminar de .NET Core. Vea: https://aka.ms/dotnet-core-preview{StrBegin="NETSDK1057: "}
+
+ NETSDK1106: Microsoft.NET.Sdk.WindowsDesktop requires 'UseWpf' or 'UseWindowsForms' to be set to 'true'
+ NETSDK1106: Microsoft.NET.Sdk.WindowsDesktop requires 'UseWpf' or 'UseWindowsForms' to be set to 'true'
+ {StrBegin="NETSDK1106: "}
+
+
+ NETSDK1105: Windows desktop applications are only supported on .NET Core 3.0 or higher.
+ NETSDK1105: Windows desktop applications are only supported on .NET Core 3.0 or higher.
+ {StrBegin="NETSDK1105: "}
+ NETSDK1100: Windows is required to build Windows desktop applications.NETSDK1100: Windows is required to build Windows desktop applications.
diff --git a/src/Tasks/Common/Resources/xlf/Strings.fr.xlf b/src/Tasks/Common/Resources/xlf/Strings.fr.xlf
index 0c811b6d9c31..2c46245a272b 100644
--- a/src/Tasks/Common/Resources/xlf/Strings.fr.xlf
+++ b/src/Tasks/Common/Resources/xlf/Strings.fr.xlf
@@ -516,11 +516,26 @@ The following are names of parameters or literal values and should not be transl
NETSDK1045: Le kit .NET SDK actuel ne prend pas en charge le ciblage de {0} {1}. Vous devez soit cibler {0} {2} ou une version antérieure, soit utiliser une version du kit .NET SDK qui prend en charge {0} {1}.{StrBegin="NETSDK1045: "}
+
+ NETSDK1107: Microsoft.NET.Sdk.WindowsDesktop is required to build Windows desktop applications. 'UseWpf' and 'UseWindowsForms' are not supported by the current SDK.
+ NETSDK1107: Microsoft.NET.Sdk.WindowsDesktop is required to build Windows desktop applications. 'UseWpf' and 'UseWindowsForms' are not supported by the current SDK.
+ {StrBegin="NETSDK1107: "}
+ NETSDK1057: You are using a preview version of .NET Core. See: https://aka.ms/dotnet-core-previewNETSDK1057 : Vous utilisez une préversion de .NET Core. Voir : https://aka.ms/dotnet-core-preview{StrBegin="NETSDK1057: "}
+
+ NETSDK1106: Microsoft.NET.Sdk.WindowsDesktop requires 'UseWpf' or 'UseWindowsForms' to be set to 'true'
+ NETSDK1106: Microsoft.NET.Sdk.WindowsDesktop requires 'UseWpf' or 'UseWindowsForms' to be set to 'true'
+ {StrBegin="NETSDK1106: "}
+
+
+ NETSDK1105: Windows desktop applications are only supported on .NET Core 3.0 or higher.
+ NETSDK1105: Windows desktop applications are only supported on .NET Core 3.0 or higher.
+ {StrBegin="NETSDK1105: "}
+ NETSDK1100: Windows is required to build Windows desktop applications.NETSDK1100: Windows is required to build Windows desktop applications.
diff --git a/src/Tasks/Common/Resources/xlf/Strings.it.xlf b/src/Tasks/Common/Resources/xlf/Strings.it.xlf
index d54477468fc1..0c19e5b19bb3 100644
--- a/src/Tasks/Common/Resources/xlf/Strings.it.xlf
+++ b/src/Tasks/Common/Resources/xlf/Strings.it.xlf
@@ -516,11 +516,26 @@ The following are names of parameters or literal values and should not be transl
NETSDK1045: la versione corrente di .NET SDK non supporta {0} {1} come destinazione. Impostare come destinazione {0} {2} o una versione precedente oppure usare una versione di .NET SDK che supporta {0} {1}.{StrBegin="NETSDK1045: "}
+
+ NETSDK1107: Microsoft.NET.Sdk.WindowsDesktop is required to build Windows desktop applications. 'UseWpf' and 'UseWindowsForms' are not supported by the current SDK.
+ NETSDK1107: Microsoft.NET.Sdk.WindowsDesktop is required to build Windows desktop applications. 'UseWpf' and 'UseWindowsForms' are not supported by the current SDK.
+ {StrBegin="NETSDK1107: "}
+ NETSDK1057: You are using a preview version of .NET Core. See: https://aka.ms/dotnet-core-previewNETSDK1057: si sta usando una versione in anteprima di .NET Core. Vedere https://aka.ms/dotnet-core-preview{StrBegin="NETSDK1057: "}
+
+ NETSDK1106: Microsoft.NET.Sdk.WindowsDesktop requires 'UseWpf' or 'UseWindowsForms' to be set to 'true'
+ NETSDK1106: Microsoft.NET.Sdk.WindowsDesktop requires 'UseWpf' or 'UseWindowsForms' to be set to 'true'
+ {StrBegin="NETSDK1106: "}
+
+
+ NETSDK1105: Windows desktop applications are only supported on .NET Core 3.0 or higher.
+ NETSDK1105: Windows desktop applications are only supported on .NET Core 3.0 or higher.
+ {StrBegin="NETSDK1105: "}
+ NETSDK1100: Windows is required to build Windows desktop applications.NETSDK1100: Windows is required to build Windows desktop applications.
diff --git a/src/Tasks/Common/Resources/xlf/Strings.ja.xlf b/src/Tasks/Common/Resources/xlf/Strings.ja.xlf
index b0db54e3ea91..9b762b8eece1 100644
--- a/src/Tasks/Common/Resources/xlf/Strings.ja.xlf
+++ b/src/Tasks/Common/Resources/xlf/Strings.ja.xlf
@@ -516,11 +516,26 @@ The following are names of parameters or literal values and should not be transl
NETSDK1045: 現在の .NET SDK は、ターゲットとする {0} {1} をサポートしていません。{0} {2} 以下をターゲットとするか、{0} {1} をサポートする .NET SDK のバージョンを使用してください。{StrBegin="NETSDK1045: "}
+
+ NETSDK1107: Microsoft.NET.Sdk.WindowsDesktop is required to build Windows desktop applications. 'UseWpf' and 'UseWindowsForms' are not supported by the current SDK.
+ NETSDK1107: Microsoft.NET.Sdk.WindowsDesktop is required to build Windows desktop applications. 'UseWpf' and 'UseWindowsForms' are not supported by the current SDK.
+ {StrBegin="NETSDK1107: "}
+ NETSDK1057: You are using a preview version of .NET Core. See: https://aka.ms/dotnet-core-previewNETSDK1057: プレビュー版の .NET Core を使用しています。https://aka.ms/dotnet-core-preview をご覧ください{StrBegin="NETSDK1057: "}
+
+ NETSDK1106: Microsoft.NET.Sdk.WindowsDesktop requires 'UseWpf' or 'UseWindowsForms' to be set to 'true'
+ NETSDK1106: Microsoft.NET.Sdk.WindowsDesktop requires 'UseWpf' or 'UseWindowsForms' to be set to 'true'
+ {StrBegin="NETSDK1106: "}
+
+
+ NETSDK1105: Windows desktop applications are only supported on .NET Core 3.0 or higher.
+ NETSDK1105: Windows desktop applications are only supported on .NET Core 3.0 or higher.
+ {StrBegin="NETSDK1105: "}
+ NETSDK1100: Windows is required to build Windows desktop applications.NETSDK1100: Windows is required to build Windows desktop applications.
diff --git a/src/Tasks/Common/Resources/xlf/Strings.ko.xlf b/src/Tasks/Common/Resources/xlf/Strings.ko.xlf
index a5b9a52b8833..ba2babdd85f9 100644
--- a/src/Tasks/Common/Resources/xlf/Strings.ko.xlf
+++ b/src/Tasks/Common/Resources/xlf/Strings.ko.xlf
@@ -516,11 +516,26 @@ The following are names of parameters or literal values and should not be transl
NETSDK1045: 현재 .NET SDK에서는 {0} {1}을(를) 대상으로 하는 것을 지원하지 않습니다. {0} {2} 이하를 대상으로 하거나 {0} {1}을(를) 지원하는 .NET SDK 버전을 사용하세요.{StrBegin="NETSDK1045: "}
+
+ NETSDK1107: Microsoft.NET.Sdk.WindowsDesktop is required to build Windows desktop applications. 'UseWpf' and 'UseWindowsForms' are not supported by the current SDK.
+ NETSDK1107: Microsoft.NET.Sdk.WindowsDesktop is required to build Windows desktop applications. 'UseWpf' and 'UseWindowsForms' are not supported by the current SDK.
+ {StrBegin="NETSDK1107: "}
+ NETSDK1057: You are using a preview version of .NET Core. See: https://aka.ms/dotnet-core-previewNETSDK1057: .NET Core의 미리 보기 버전을 사용 중입니다. 참조: https://aka.ms/dotnet-core-preview{StrBegin="NETSDK1057: "}
+
+ NETSDK1106: Microsoft.NET.Sdk.WindowsDesktop requires 'UseWpf' or 'UseWindowsForms' to be set to 'true'
+ NETSDK1106: Microsoft.NET.Sdk.WindowsDesktop requires 'UseWpf' or 'UseWindowsForms' to be set to 'true'
+ {StrBegin="NETSDK1106: "}
+
+
+ NETSDK1105: Windows desktop applications are only supported on .NET Core 3.0 or higher.
+ NETSDK1105: Windows desktop applications are only supported on .NET Core 3.0 or higher.
+ {StrBegin="NETSDK1105: "}
+ NETSDK1100: Windows is required to build Windows desktop applications.NETSDK1100: Windows is required to build Windows desktop applications.
diff --git a/src/Tasks/Common/Resources/xlf/Strings.pl.xlf b/src/Tasks/Common/Resources/xlf/Strings.pl.xlf
index 3761fa278328..22dc949a5137 100644
--- a/src/Tasks/Common/Resources/xlf/Strings.pl.xlf
+++ b/src/Tasks/Common/Resources/xlf/Strings.pl.xlf
@@ -516,11 +516,26 @@ The following are names of parameters or literal values and should not be transl
NETSDK1045: Bieżący zestaw .NET SDK nie obsługuje używania środowiska docelowego {0} {1}. Użyj jako środowiska docelowego wersji {0} {2} lub starszej albo użyj wersji zestawu .NET SDK obsługującej środowisko {0} {1}.{StrBegin="NETSDK1045: "}
+
+ NETSDK1107: Microsoft.NET.Sdk.WindowsDesktop is required to build Windows desktop applications. 'UseWpf' and 'UseWindowsForms' are not supported by the current SDK.
+ NETSDK1107: Microsoft.NET.Sdk.WindowsDesktop is required to build Windows desktop applications. 'UseWpf' and 'UseWindowsForms' are not supported by the current SDK.
+ {StrBegin="NETSDK1107: "}
+ NETSDK1057: You are using a preview version of .NET Core. See: https://aka.ms/dotnet-core-previewNETSDK1057: Korzystasz z wersji zapoznawczej platformy .NET Core. Zobacz: https://aka.ms/dotnet-core-preview{StrBegin="NETSDK1057: "}
+
+ NETSDK1106: Microsoft.NET.Sdk.WindowsDesktop requires 'UseWpf' or 'UseWindowsForms' to be set to 'true'
+ NETSDK1106: Microsoft.NET.Sdk.WindowsDesktop requires 'UseWpf' or 'UseWindowsForms' to be set to 'true'
+ {StrBegin="NETSDK1106: "}
+
+
+ NETSDK1105: Windows desktop applications are only supported on .NET Core 3.0 or higher.
+ NETSDK1105: Windows desktop applications are only supported on .NET Core 3.0 or higher.
+ {StrBegin="NETSDK1105: "}
+ NETSDK1100: Windows is required to build Windows desktop applications.NETSDK1100: Windows is required to build Windows desktop applications.
diff --git a/src/Tasks/Common/Resources/xlf/Strings.pt-BR.xlf b/src/Tasks/Common/Resources/xlf/Strings.pt-BR.xlf
index 2401414c45cc..1e181c744eba 100644
--- a/src/Tasks/Common/Resources/xlf/Strings.pt-BR.xlf
+++ b/src/Tasks/Common/Resources/xlf/Strings.pt-BR.xlf
@@ -516,11 +516,26 @@ The following are names of parameters or literal values and should not be transl
NETSDK1045: O SDK do .NET atual não dá suporte para direcionar a {0} {1}. Direcione a {0} {2} ou inferior, ou use uma versão do SDK do .NET compatível com {0} {1}.{StrBegin="NETSDK1045: "}
+
+ NETSDK1107: Microsoft.NET.Sdk.WindowsDesktop is required to build Windows desktop applications. 'UseWpf' and 'UseWindowsForms' are not supported by the current SDK.
+ NETSDK1107: Microsoft.NET.Sdk.WindowsDesktop is required to build Windows desktop applications. 'UseWpf' and 'UseWindowsForms' are not supported by the current SDK.
+ {StrBegin="NETSDK1107: "}
+ NETSDK1057: You are using a preview version of .NET Core. See: https://aka.ms/dotnet-core-previewNETSDK1057: você está usando uma versão prévia do .NET Core. Consulte: https://aka.ms/dotnet-core-preview{StrBegin="NETSDK1057: "}
+
+ NETSDK1106: Microsoft.NET.Sdk.WindowsDesktop requires 'UseWpf' or 'UseWindowsForms' to be set to 'true'
+ NETSDK1106: Microsoft.NET.Sdk.WindowsDesktop requires 'UseWpf' or 'UseWindowsForms' to be set to 'true'
+ {StrBegin="NETSDK1106: "}
+
+
+ NETSDK1105: Windows desktop applications are only supported on .NET Core 3.0 or higher.
+ NETSDK1105: Windows desktop applications are only supported on .NET Core 3.0 or higher.
+ {StrBegin="NETSDK1105: "}
+ NETSDK1100: Windows is required to build Windows desktop applications.NETSDK1100: Windows is required to build Windows desktop applications.
diff --git a/src/Tasks/Common/Resources/xlf/Strings.ru.xlf b/src/Tasks/Common/Resources/xlf/Strings.ru.xlf
index c03558aa3f94..81c2f09576c4 100644
--- a/src/Tasks/Common/Resources/xlf/Strings.ru.xlf
+++ b/src/Tasks/Common/Resources/xlf/Strings.ru.xlf
@@ -516,11 +516,26 @@ The following are names of parameters or literal values and should not be transl
NETSDK1045: текущий пакет SDK для .NET не поддерживает целевой объект {0} {1}. Выберите {0} {2} или более раннюю версию либо используйте версию пакета SDK для .NET, которая поддерживает {0} {1}.{StrBegin="NETSDK1045: "}
+
+ NETSDK1107: Microsoft.NET.Sdk.WindowsDesktop is required to build Windows desktop applications. 'UseWpf' and 'UseWindowsForms' are not supported by the current SDK.
+ NETSDK1107: Microsoft.NET.Sdk.WindowsDesktop is required to build Windows desktop applications. 'UseWpf' and 'UseWindowsForms' are not supported by the current SDK.
+ {StrBegin="NETSDK1107: "}
+ NETSDK1057: You are using a preview version of .NET Core. See: https://aka.ms/dotnet-core-previewNETSDK1057: Вы используете предварительную версию .NET Core. Дополнительные сведения см. на странице https://aka.ms/dotnet-core-preview{StrBegin="NETSDK1057: "}
+
+ NETSDK1106: Microsoft.NET.Sdk.WindowsDesktop requires 'UseWpf' or 'UseWindowsForms' to be set to 'true'
+ NETSDK1106: Microsoft.NET.Sdk.WindowsDesktop requires 'UseWpf' or 'UseWindowsForms' to be set to 'true'
+ {StrBegin="NETSDK1106: "}
+
+
+ NETSDK1105: Windows desktop applications are only supported on .NET Core 3.0 or higher.
+ NETSDK1105: Windows desktop applications are only supported on .NET Core 3.0 or higher.
+ {StrBegin="NETSDK1105: "}
+ NETSDK1100: Windows is required to build Windows desktop applications.NETSDK1100: Windows is required to build Windows desktop applications.
diff --git a/src/Tasks/Common/Resources/xlf/Strings.tr.xlf b/src/Tasks/Common/Resources/xlf/Strings.tr.xlf
index f5d0b83a0b33..c47457347ac4 100644
--- a/src/Tasks/Common/Resources/xlf/Strings.tr.xlf
+++ b/src/Tasks/Common/Resources/xlf/Strings.tr.xlf
@@ -516,11 +516,26 @@ The following are names of parameters or literal values and should not be transl
NETSDK1045: Geçerli .NET SDK’sı {0} {1} sürümünü hedeflemeyi desteklemiyor. {0} {2} veya daha düşük bir sürümü hedefleyin veya {0} {1} destekleyen bir .NET SDK’sı kullanın.{StrBegin="NETSDK1045: "}
+
+ NETSDK1107: Microsoft.NET.Sdk.WindowsDesktop is required to build Windows desktop applications. 'UseWpf' and 'UseWindowsForms' are not supported by the current SDK.
+ NETSDK1107: Microsoft.NET.Sdk.WindowsDesktop is required to build Windows desktop applications. 'UseWpf' and 'UseWindowsForms' are not supported by the current SDK.
+ {StrBegin="NETSDK1107: "}
+ NETSDK1057: You are using a preview version of .NET Core. See: https://aka.ms/dotnet-core-previewNETSDK1057: .NET Core'un önizleme sürümünü kullanıyorsunuz. Bkz. https://aka.ms/dotnet-core-preview{StrBegin="NETSDK1057: "}
+
+ NETSDK1106: Microsoft.NET.Sdk.WindowsDesktop requires 'UseWpf' or 'UseWindowsForms' to be set to 'true'
+ NETSDK1106: Microsoft.NET.Sdk.WindowsDesktop requires 'UseWpf' or 'UseWindowsForms' to be set to 'true'
+ {StrBegin="NETSDK1106: "}
+
+
+ NETSDK1105: Windows desktop applications are only supported on .NET Core 3.0 or higher.
+ NETSDK1105: Windows desktop applications are only supported on .NET Core 3.0 or higher.
+ {StrBegin="NETSDK1105: "}
+ NETSDK1100: Windows is required to build Windows desktop applications.NETSDK1100: Windows is required to build Windows desktop applications.
diff --git a/src/Tasks/Common/Resources/xlf/Strings.zh-Hans.xlf b/src/Tasks/Common/Resources/xlf/Strings.zh-Hans.xlf
index f7c303bda1c9..283dd8a3e7ce 100644
--- a/src/Tasks/Common/Resources/xlf/Strings.zh-Hans.xlf
+++ b/src/Tasks/Common/Resources/xlf/Strings.zh-Hans.xlf
@@ -516,11 +516,26 @@ The following are names of parameters or literal values and should not be transl
NETSDK1045: 当前 .NET SDK 不支持将 {0} {1} 设置为目标。请将 {0} {2} 或更低版本设置为目标,或使用支持 {0} {1} 的 .NET SDK 版本。{StrBegin="NETSDK1045: "}
+
+ NETSDK1107: Microsoft.NET.Sdk.WindowsDesktop is required to build Windows desktop applications. 'UseWpf' and 'UseWindowsForms' are not supported by the current SDK.
+ NETSDK1107: Microsoft.NET.Sdk.WindowsDesktop is required to build Windows desktop applications. 'UseWpf' and 'UseWindowsForms' are not supported by the current SDK.
+ {StrBegin="NETSDK1107: "}
+ NETSDK1057: You are using a preview version of .NET Core. See: https://aka.ms/dotnet-core-previewNETSDK1057: 你正在使用 .NET Core 的预览版。请查看 https://aka.ms/dotnet-core-preview{StrBegin="NETSDK1057: "}
+
+ NETSDK1106: Microsoft.NET.Sdk.WindowsDesktop requires 'UseWpf' or 'UseWindowsForms' to be set to 'true'
+ NETSDK1106: Microsoft.NET.Sdk.WindowsDesktop requires 'UseWpf' or 'UseWindowsForms' to be set to 'true'
+ {StrBegin="NETSDK1106: "}
+
+
+ NETSDK1105: Windows desktop applications are only supported on .NET Core 3.0 or higher.
+ NETSDK1105: Windows desktop applications are only supported on .NET Core 3.0 or higher.
+ {StrBegin="NETSDK1105: "}
+ NETSDK1100: Windows is required to build Windows desktop applications.NETSDK1100: Windows is required to build Windows desktop applications.
diff --git a/src/Tasks/Common/Resources/xlf/Strings.zh-Hant.xlf b/src/Tasks/Common/Resources/xlf/Strings.zh-Hant.xlf
index 4279e1b907bc..c80d8eb6b6ba 100644
--- a/src/Tasks/Common/Resources/xlf/Strings.zh-Hant.xlf
+++ b/src/Tasks/Common/Resources/xlf/Strings.zh-Hant.xlf
@@ -516,11 +516,26 @@ The following are names of parameters or literal values and should not be transl
NETSDK1045: 目前的 .NET SDK 不支援以 {0} {1} 作為目標。請以 {0} {2} 或更低版本作為目標,或是使用支援 {0} {1} 的 .NET SDK 版本。{StrBegin="NETSDK1045: "}
+
+ NETSDK1107: Microsoft.NET.Sdk.WindowsDesktop is required to build Windows desktop applications. 'UseWpf' and 'UseWindowsForms' are not supported by the current SDK.
+ NETSDK1107: Microsoft.NET.Sdk.WindowsDesktop is required to build Windows desktop applications. 'UseWpf' and 'UseWindowsForms' are not supported by the current SDK.
+ {StrBegin="NETSDK1107: "}
+ NETSDK1057: You are using a preview version of .NET Core. See: https://aka.ms/dotnet-core-previewNETSDK1057: 您使用的是 .NET Core 預覽版。請參閱: https://aka.ms/dotnet-core-preview{StrBegin="NETSDK1057: "}
+
+ NETSDK1106: Microsoft.NET.Sdk.WindowsDesktop requires 'UseWpf' or 'UseWindowsForms' to be set to 'true'
+ NETSDK1106: Microsoft.NET.Sdk.WindowsDesktop requires 'UseWpf' or 'UseWindowsForms' to be set to 'true'
+ {StrBegin="NETSDK1106: "}
+
+
+ NETSDK1105: Windows desktop applications are only supported on .NET Core 3.0 or higher.
+ NETSDK1105: Windows desktop applications are only supported on .NET Core 3.0 or higher.
+ {StrBegin="NETSDK1105: "}
+ NETSDK1100: Windows is required to build Windows desktop applications.NETSDK1100: Windows is required to build Windows desktop applications.
diff --git a/src/Tasks/Microsoft.NET.Build.Tasks.UnitTests/GivenAResolvePackageAssetsTask.cs b/src/Tasks/Microsoft.NET.Build.Tasks.UnitTests/GivenAResolvePackageAssetsTask.cs
index 9e511c166fe7..fd3883014733 100644
--- a/src/Tasks/Microsoft.NET.Build.Tasks.UnitTests/GivenAResolvePackageAssetsTask.cs
+++ b/src/Tasks/Microsoft.NET.Build.Tasks.UnitTests/GivenAResolvePackageAssetsTask.cs
@@ -4,6 +4,8 @@
using FluentAssertions;
using Microsoft.Build.Framework;
using System;
+using System.Collections;
+using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using Xunit;
@@ -15,27 +17,9 @@ public class GivenAResolvePackageAssetsTask
[Fact]
public void ItHashesAllParameters()
{
- var inputProperties = typeof(ResolvePackageAssets)
- .GetProperties(BindingFlags.DeclaredOnly | BindingFlags.Instance | BindingFlags.Public)
- .Where(p => !p.IsDefined(typeof(OutputAttribute)) &&
- p.Name != nameof(ResolvePackageAssets.DesignTimeBuild))
- .OrderBy(p => p.Name, StringComparer.Ordinal);
+ IEnumerable inputProperties;
- var requiredProperties = inputProperties
- .Where(p => p.IsDefined(typeof(RequiredAttribute)));
-
- var task = new ResolvePackageAssets();
-
- // Initialize all required properties as a genuine task invocation would. We do this
- // because HashSettings need not defend against required parameters being null.
- foreach (var property in requiredProperties)
- {
- property.PropertyType.Should().Be(
- typeof(string),
- because: $"this test hasn't been updated to handle non-string required task parameters like {property.Name}");
-
- property.SetValue(task, "_");
- }
+ var task = InitializeTask(out inputProperties);
byte[] oldHash;
try
@@ -80,6 +64,50 @@ public void ItHashesAllParameters()
oldHash = newHash;
}
}
+
+ [Fact]
+ public void ItDoesNotHashDesignTimeBuild()
+ {
+ var task = InitializeTask(out _);
+
+ task.DesignTimeBuild = false;
+
+ byte[] oldHash = task.HashSettings();
+
+ task.DesignTimeBuild = true;
+
+ byte[] newHash = task.HashSettings();
+
+ newHash.Should().BeEquivalentTo(oldHash,
+ because: $"{nameof(task.DesignTimeBuild)} should not be included in hash.");
+ }
+
+ private ResolvePackageAssets InitializeTask(out IEnumerable inputProperties)
+ {
+ inputProperties = typeof(ResolvePackageAssets)
+ .GetProperties(BindingFlags.DeclaredOnly | BindingFlags.Instance | BindingFlags.Public)
+ .Where(p => !p.IsDefined(typeof(OutputAttribute)) &&
+ p.Name != nameof(ResolvePackageAssets.DesignTimeBuild))
+ .OrderBy(p => p.Name, StringComparer.Ordinal);
+
+ var requiredProperties = inputProperties
+ .Where(p => p.IsDefined(typeof(RequiredAttribute)));
+
+ var task = new ResolvePackageAssets();
+
+ // Initialize all required properties as a genuine task invocation would. We do this
+ // because HashSettings need not defend against required parameters being null.
+ foreach (var property in requiredProperties)
+ {
+ property.PropertyType.Should().Be(
+ typeof(string),
+ because: $"this test hasn't been updated to handle non-string required task parameters like {property.Name}");
+
+ property.SetValue(task, "_");
+ }
+
+ return task;
+ }
}
}
diff --git a/src/Tasks/Microsoft.NET.Build.Tasks/PrepareForReadyToRunCompilation.cs b/src/Tasks/Microsoft.NET.Build.Tasks/PrepareForReadyToRunCompilation.cs
index e9276ff6e903..351f66ae8ec9 100644
--- a/src/Tasks/Microsoft.NET.Build.Tasks/PrepareForReadyToRunCompilation.cs
+++ b/src/Tasks/Microsoft.NET.Build.Tasks/PrepareForReadyToRunCompilation.cs
@@ -69,7 +69,9 @@ protected override void ExecuteCore()
string supportedRuntimeIdentifiers = frameworkRef == null ? null : frameworkRef.GetMetadata("RuntimePackRuntimeIdentifiers");
// Get information on the runtime package used for the current target
- ITaskItem frameworkPack = RuntimePacks.Where(pack => pack.ItemSpec.EndsWith(".Microsoft.NETCore.App", StringComparison.InvariantCultureIgnoreCase)).SingleOrDefault();
+ ITaskItem frameworkPack = RuntimePacks.Where(pack =>
+ pack.GetMetadata(MetadataKeys.FrameworkName).Equals("Microsoft.NETCore.App", StringComparison.OrdinalIgnoreCase))
+ .SingleOrDefault();
_runtimeIdentifier = frameworkPack == null ? null : frameworkPack.GetMetadata(MetadataKeys.RuntimeIdentifier);
_packagePath = frameworkPack == null ? null : frameworkPack.GetMetadata(MetadataKeys.PackageDirectory);
diff --git a/src/Tasks/Microsoft.NET.Build.Tasks/ResolvePackageAssets.cs b/src/Tasks/Microsoft.NET.Build.Tasks/ResolvePackageAssets.cs
index 6a5b461ad4af..fb105165560c 100644
--- a/src/Tasks/Microsoft.NET.Build.Tasks/ResolvePackageAssets.cs
+++ b/src/Tasks/Microsoft.NET.Build.Tasks/ResolvePackageAssets.cs
@@ -373,7 +373,6 @@ internal byte[] HashSettings()
{
using (var writer = new BinaryWriter(stream, TextEncoding, leaveOpen: true))
{
- writer.Write(DesignTimeBuild);
writer.Write(DisablePackageAssetsCache);
writer.Write(DisableFrameworkAssemblies);
writer.Write(CopyLocalRuntimeTargetAssets);
diff --git a/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.DefaultItems.targets b/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.DefaultItems.targets
index ad72d160c955..b8442fa34db8 100644
--- a/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.DefaultItems.targets
+++ b/src/Tasks/Microsoft.NET.Build.Tasks/targets/Microsoft.NET.Sdk.DefaultItems.targets
@@ -333,4 +333,11 @@ Copyright (c) .NET Foundation. All rights reserved.
+
+
+
+
diff --git a/src/Tests/Microsoft.NET.Build.Tests/GivenFrameworkReferences.cs b/src/Tests/Microsoft.NET.Build.Tests/GivenFrameworkReferences.cs
index ec0d7a014d72..12af95859d42 100644
--- a/src/Tests/Microsoft.NET.Build.Tests/GivenFrameworkReferences.cs
+++ b/src/Tests/Microsoft.NET.Build.Tests/GivenFrameworkReferences.cs
@@ -396,7 +396,7 @@ public void RuntimeFrameworkVersionCanBeSpecifiedOnFrameworkReference()
resolvedVersions.RuntimeFramework["Microsoft.NETCore.App"].Should().Be(runtimeFrameworkVersion);
resolvedVersions.PackageDownload["Microsoft.NETCore.App.Ref"].Should().Be(targetingPackVersion);
string runtimePackName = resolvedVersions.PackageDownload.Keys
- .Where(k => k.StartsWith("runtime.") && k.EndsWith(".Microsoft.NETCore.App"))
+ .Where(k => k.StartsWith("Microsoft.NETCore.App.Runtime."))
.Single();
resolvedVersions.PackageDownload[runtimePackName].Should().Be(runtimeFrameworkVersion);
resolvedVersions.TargetingPack["Microsoft.NETCore.App"].Should().Be(targetingPackVersion);
@@ -419,7 +419,7 @@ public void RuntimeFrameworkVersionCanBeSpecifiedViaProperty()
resolvedVersions.RuntimeFramework["Microsoft.NETCore.App"].Should().Be(runtimeFrameworkVersion);
resolvedVersions.PackageDownload["Microsoft.NETCore.App.Ref"].Should().Be(targetingPackVersion);
string runtimePackName = resolvedVersions.PackageDownload.Keys
- .Where(k => k.StartsWith("runtime.") && k.EndsWith(".Microsoft.NETCore.App"))
+ .Where(k => k.StartsWith("Microsoft.NETCore.App.Runtime."))
.Single();
resolvedVersions.PackageDownload[runtimePackName].Should().Be(runtimeFrameworkVersion);
resolvedVersions.TargetingPack["Microsoft.NETCore.App"].Should().Be(targetingPackVersion);
@@ -455,7 +455,7 @@ public void TargetLatestPatchCanBeSpecifiedOnFrameworkReference(bool attributeVa
resolvedVersions.RuntimeFramework["Microsoft.NETCore.App"].Should().Be(expectedRuntimeFrameworkVersion);
resolvedVersions.PackageDownload["Microsoft.NETCore.App.Ref"].Should().Be(targetingPackVersion);
string runtimePackName = resolvedVersions.PackageDownload.Keys
- .Where(k => k.StartsWith("runtime.") && k.EndsWith(".Microsoft.NETCore.App"))
+ .Where(k => k.StartsWith("Microsoft.NETCore.App.Runtime."))
.Single();
resolvedVersions.PackageDownload[runtimePackName].Should().Be(expectedRuntimeFrameworkVersion);
resolvedVersions.TargetingPack["Microsoft.NETCore.App"].Should().Be(targetingPackVersion);
@@ -481,7 +481,7 @@ public void TargetLatestPatchCanBeSpecifiedViaProperty(bool propertyValue)
resolvedVersions.RuntimeFramework["Microsoft.NETCore.App"].Should().Be(expectedRuntimeFrameworkVersion);
resolvedVersions.PackageDownload["Microsoft.NETCore.App.Ref"].Should().Be(targetingPackVersion);
string runtimePackName = resolvedVersions.PackageDownload.Keys
- .Where(k => k.StartsWith("runtime.") && k.EndsWith(".Microsoft.NETCore.App"))
+ .Where(k => k.StartsWith("Microsoft.NETCore.App.Runtime."))
.Single();
resolvedVersions.PackageDownload[runtimePackName].Should().Be(expectedRuntimeFrameworkVersion);
resolvedVersions.TargetingPack["Microsoft.NETCore.App"].Should().Be(targetingPackVersion);
@@ -512,7 +512,7 @@ public void TargetingPackVersionCanBeSpecifiedOnFrameworkReference()
resolvedVersions.RuntimeFramework["Microsoft.NETCore.App"].Should().Be(expectedRuntimeFrameworkVersion);
resolvedVersions.PackageDownload["Microsoft.NETCore.App.Ref"].Should().Be(targetingPackVersion);
string runtimePackName = resolvedVersions.PackageDownload.Keys
- .Where(k => k.StartsWith("runtime.") && k.EndsWith(".Microsoft.NETCore.App"))
+ .Where(k => k.StartsWith("Microsoft.NETCore.App.Runtime."))
.Single();
resolvedVersions.PackageDownload[runtimePackName].Should().Be(expectedRuntimeFrameworkVersion);
resolvedVersions.TargetingPack["Microsoft.NETCore.App"].Should().Be(targetingPackVersion);
@@ -629,7 +629,7 @@ public void IsTrimmableDefaultsComeFromKnownFrameworkReference()
var runtimeAssetTrimInfo = GetRuntimeAssetTrimInfo(testProject);
string runtimePackName = runtimeAssetTrimInfo.Keys
- .Where(k => k.StartsWith("runtime.") && k.EndsWith(".Microsoft.NETCore.App"))
+ .Where(k => k.StartsWith("Microsoft.NETCore.App.Runtime."))
.Single();
foreach (var runtimeAsset in runtimeAssetTrimInfo[runtimePackName])
@@ -657,7 +657,7 @@ public void IsTrimmableCanBeSpecifiedOnFrameworkReference()
});
string runtimePackName = runtimeAssetTrimInfo.Keys
- .Where(k => k.StartsWith("runtime.") && k.EndsWith(".Microsoft.NETCore.App"))
+ .Where(k => k.StartsWith("Microsoft.NETCore.App.Runtime."))
.Single();
foreach (var runtimeAsset in runtimeAssetTrimInfo[runtimePackName])
diff --git a/src/Tests/Microsoft.NET.Publish.Tests/GivenThatWeWantToPreserveCompilationContext.cs b/src/Tests/Microsoft.NET.Publish.Tests/GivenThatWeWantToPreserveCompilationContext.cs
index 7a165943804e..aedaa1945ce9 100644
--- a/src/Tests/Microsoft.NET.Publish.Tests/GivenThatWeWantToPreserveCompilationContext.cs
+++ b/src/Tests/Microsoft.NET.Publish.Tests/GivenThatWeWantToPreserveCompilationContext.cs
@@ -674,6 +674,7 @@ public void It_excludes_runtime_store_packages_from_the_refs_folder()
System.ServiceModel.Web.dll
System.ServiceProcess.dll
System.Text.Encoding.dll
+System.Text.Encoding.CodePages.dll
System.Text.Encoding.Extensions.dll
System.Text.Encodings.Web.dll
System.Text.RegularExpressions.dll