diff --git a/.vsts-ci.yml b/.vsts-ci.yml
index 4df98acf9b18..33149faf36cd 100644
--- a/.vsts-ci.yml
+++ b/.vsts-ci.yml
@@ -3,26 +3,30 @@ trigger:
- release/*
variables:
- teamName: Roslyn-Project-System
- ${{ if eq(variables['System.TeamProject'], 'public') }}:
- PB_PublishBlobFeedKey:
- PB_PublishBlobFeedUrl:
- _DotNetPublishToBlobFeed: false
- ${{ if ne(variables['System.TeamProject'], 'public') }}:
- PB_PublishBlobFeedUrl: https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json
- _DotNetPublishToBlobFeed: true
+ - name: teamName
+ value: Roslyn-Project-System
+ - name: PB_PublishBlobFeedUrl
+ value: ''
+ - name: _DotNetPublishToBlobFeed
+ value: false
+ - ${{ if ne(variables['System.TeamProject'], 'public') }}:
+ - name: PB_PublishBlobFeedUrl
+ value: https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json
+ - name: _DotNetPublishToBlobFeed
+ value: true
-phases:
+jobs:
- template: /eng/build.yml
parameters:
agentOs: Windows_NT
- queue:
+ pool:
${{ if eq(variables['System.TeamProject'], 'public') }}:
- name: dotnet-external-temp
+ name: NetCorePublic-Int-Pool
+ queue: buildpool.windows.10.amd64.vs2017.open
${{ if ne(variables['System.TeamProject'], 'public') }}:
- name: dotnet-internal-temp
- parallel: 2
- timeoutInMinutes: 120
+ name: NetCoreInternal-Int-Pool
+ queue: buildpool.windows.10.amd64.vs2017
+ strategy:
matrix:
${{ if eq(variables['System.TeamProject'], 'public') }}:
Build_Debug:
@@ -42,10 +46,10 @@ phases:
- template: /eng/build.yml
parameters:
agentOs: Windows_NT_FullFramework
- queue:
- name: dotnet-external-temp
- parallel: 2
- timeoutInMinutes: 120
+ pool:
+ name: NetCorePublic-Int-Pool
+ queue: buildpool.windows.10.amd64.vs2017.open
+ strategy:
matrix:
Build_Debug:
_BuildConfig: Debug
@@ -59,10 +63,10 @@ phases:
- template: /eng/build.yml
parameters:
agentOs: Windows_NT_TestAsTools
- queue:
- name: dotnet-external-temp
- parallel: 2
- timeoutInMinutes: 120
+ pool:
+ name: NetCorePublic-Int-Pool
+ queue: buildpool.windows.10.amd64.vs2017.open
+ strategy:
matrix:
Build_Debug:
_BuildConfig: Debug
@@ -72,10 +76,9 @@ phases:
- template: /eng/build.yml
parameters:
agentOs: Ubuntu_14_04
- queue:
+ pool:
name: Hosted Ubuntu 1604
- parallel: 2
- timeoutInMinutes: 120
+ strategy:
matrix:
Build_Debug:
_BuildConfig: Debug
@@ -91,10 +94,9 @@ phases:
- template: /eng/build.yml
parameters:
agentOs: Ubuntu_16_04
- queue:
+ pool:
name: Hosted Ubuntu 1604
- parallel: 2
- timeoutInMinutes: 120
+ strategy:
matrix:
Build_Debug:
_BuildConfig: Debug
@@ -110,10 +112,9 @@ phases:
- template: /eng/build.yml
parameters:
agentOs: Darwin
- queue:
+ pool:
name: DotNetCore-Mac
- parallel: 2
- timeoutInMinutes: 120
+ strategy:
matrix:
Build_Debug:
_BuildConfig: Debug
@@ -127,10 +128,10 @@ phases:
- template: /eng/build.yml
parameters:
agentOs: Windows_Performance
- queue:
- name: dotnet-external-temp
- parallel: 2
- timeoutInMinutes: 120
+ pool:
+ name: NetCorePublic-Int-Pool
+ queue: buildpool.windows.10.amd64.vs2017.open
+ strategy:
matrix:
Build_Release:
_BuildConfig: Release
@@ -140,10 +141,9 @@ phases:
- template: /eng/build.yml
parameters:
agentOs: Linux_Performance
- queue:
+ pool:
name: Hosted Ubuntu 1604
- parallel: 2
- timeoutInMinutes: 120
+ strategy:
matrix:
Build_Release:
_BuildConfig: Release
diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index 78a9b8047261..4c8ce2d9ead8 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -3,13 +3,13 @@
-
+
https://github.com/dotnet/arcade
- 9d8abf998866f10bc19d97e1916ff1c0ada3fd42
+ 5e7ce5b394f3477bb0a485a4b761b7742e95be37
-
+
https://github.com/dotnet/arcade
- 9d8abf998866f10bc19d97e1916ff1c0ada3fd42
+ 5e7ce5b394f3477bb0a485a4b761b7742e95be37
diff --git a/eng/Versions.props b/eng/Versions.props
index 99592248df6b..d8492eb0e493 100644
--- a/eng/Versions.props
+++ b/eng/Versions.props
@@ -7,22 +7,24 @@
3.0.100
- preview4
+ preview5
+ 15.4.8
15.4.8
15.4.8
2.1.0-preview2-26306-03
+ 3.0.0-preview5-27615-04
2.0.1-servicing-26011-01
9.0.1
- 5.0.1-rtm.5946
+ 5.1.0-rtm.5921
$(NuGetBuildTasksPackVersion)
$(NuGetBuildTasksPackVersion)
2.0.0
4.0.0
1.5.0
- 1.0.0-beta.19206.5
+ 1.0.0-beta.19218.7
diff --git a/eng/build.yml b/eng/build.yml
index fc00a1fc22b9..f0e23c0ddf76 100644
--- a/eng/build.yml
+++ b/eng/build.yml
@@ -1,53 +1,55 @@
parameters:
+ # Agent OS identifier and used as job name
agentOs: ''
- queue: {}
+
+ # Agent pool
+ pool: {}
+
+ # Additional variables
variables: {}
-phases:
-- template: /eng/common/templates/phases/base.yml
+ # Build strategy - matrix
+ strategy: ''
+
+ # Job timeout
+ timeoutInMinutes: 120
+
+jobs:
+- template: /eng/common/templates/job/job.yml
parameters:
name: ${{ parameters.agentOs }}
- enableTelemetry: true
enableMicrobuild: true
- queue: ${{ parameters.queue }}
+ enablePublishBuildArtifacts: true
+ enablePublishBuildAssets: true
+ enablePublishTestResults: true
+ enableTelemetry: true
+ helixRepo: dotnet/sdk
+ pool: ${{ parameters.pool }}
+ timeoutInMinutes: ${{ parameters.timeoutInMinutes }}
+ ${{ if ne(parameters.strategy, '') }}:
+ strategy: ${{ parameters.strategy }}
variables:
- ${{ insert }}: ${{ parameters.variables }}
- _AgentOSName: ${{ parameters.agentOs }}
- _HelixType: build/product
- _HelixBuildConfig: $(_BuildConfig)
- _TeamName: DotNetCore
- _PerformanceArgs: /p:PerfIterations=4
- ${{ if eq(variables['System.TeamProject'], 'public') }}:
- _HelixSource: pr/dotnet/sdk/$(Build.SourceBranch)
- _OfficialBuildIdArgs: ''
- _PublishArgs: ''
- _SignArgs: ''
- ${{ if ne(variables['System.TeamProject'], 'public') }}:
- _HelixSource: official/dotnet/sdk/$(Build.SourceBranch)
- _OfficialBuildIdArgs: /p:OfficialBuildId=$(BUILD.BUILDNUMBER)
- _PublishArgs: /p:DotNetPublishBlobFeedKey=$(dotnetfeed-storage-access-key-1)
- /p:DotNetPublishBlobFeedUrl=$(PB_PublishBlobFeedUrl)
- /p:DotNetPublishToBlobFeed=$(_DotNetPublishToBlobFeed)
- /p:DotNetSymbolServerTokenMsdl=$(microsoft-symbol-server-pat)
- /p:DotNetSymbolServerTokenSymWeb=$(symweb-symbol-server-pat)
- /p:PB_PublishType=$(_PublishType)
- _SignArgs: /p:DotNetSignType=$(_SignType) /p:TeamName=$(_TeamName)
+ - ${{ insert }}: ${{ parameters.variables }}
+ - _AgentOSName: ${{ parameters.agentOs }}
+ - _TeamName: DotNetCore
+ - _PerformanceArgs: /p:PerfIterations=4
+ - _OfficialBuildIdArgs: ''
+ - _PublishArgs: ''
+ - _SignArgs: ''
+ - ${{ if ne(variables['System.TeamProject'], 'public') }}:
+ - group: DotNet-Symbol-Server-PATs
+ - group: DotNet-HelixApi-Access
+ - group: DotNet-Blob-Feed
+ - _OfficialBuildIdArgs: /p:OfficialBuildId=$(BUILD.BUILDNUMBER)
+ - _PublishArgs: /p:DotNetPublishBlobFeedKey=$(dotnetfeed-storage-access-key-1)
+ /p:DotNetPublishBlobFeedUrl=$(PB_PublishBlobFeedUrl)
+ /p:DotNetPublishToBlobFeed=$(_DotNetPublishToBlobFeed)
+ /p:DotNetSymbolServerTokenMsdl=$(microsoft-symbol-server-pat)
+ /p:DotNetSymbolServerTokenSymWeb=$(symweb-symbol-server-pat)
+ /p:PB_PublishType=$(_PublishType)
+ - _SignArgs: /p:DotNetSignType=$(_SignType) /p:TeamName=$(_TeamName)
steps:
- - ${{ if ne(variables['System.TeamProject'], 'public') }}:
- - task: AzureKeyVault@1
- inputs:
- azureSubscription: 'DotNet-Engineering-Services_KeyVault'
- KeyVaultName: EngKeyVault
- SecretsFilter: 'dotnetfeed-storage-access-key-1,microsoft-symbol-server-pat,symweb-symbol-server-pat'
- condition: succeeded()
- - task: AzureKeyVault@1
- inputs:
- azureSubscription: 'HelixProd_KeyVault'
- KeyVaultName: HelixProdKV
- SecretsFilter: 'HelixApiAccessToken'
- condition: always()
-
- ${{ if eq(parameters.agentOs, 'Windows_NT') }}:
- script: eng\common\CIBuild.cmd
-configuration $(_BuildConfig)
@@ -116,33 +118,3 @@ phases:
BuildConfig: $(_BuildConfig)
BlobFeedUrl: $(PB_PublishBlobFeedUrl)
PublishType: $(_PublishType)
-
- - task: PublishTestResults@1
- displayName: Publish Test Results
- inputs:
- testRunner: XUnit
- testResultsFiles: 'artifacts/TestResults/$(_BuildConfig)/*.xml'
- testRunTitle: '$(_AgentOSName)_$(Agent.JobName)'
- platform: '$(BuildPlatform)'
- configuration: '$(_BuildConfig)'
- condition: not(succeeded())
-
- - task: CopyFiles@2
- displayName: Gather Logs
- inputs:
- SourceFolder: '$(Build.SourcesDirectory)'
- Contents: |
- artifacts/log/$(_BuildConfig)/**/*
- artifacts/TestResults/$(_BuildConfig)/**/*
- TargetFolder: '$(Build.ArtifactStagingDirectory)'
- continueOnError: true
- condition: not(succeeded())
-
- - task: PublishBuildArtifacts@1
- displayName: Publish Logs to VSTS
- inputs:
- PathtoPublish: '$(Build.ArtifactStagingDirectory)'
- ArtifactName: '$(_AgentOSName)_$(Agent.JobName)_$(Build.BuildNumber)'
- publishLocation: Container
- continueOnError: true
- condition: not(succeeded())
diff --git a/eng/common/CheckSymbols.ps1 b/eng/common/CheckSymbols.ps1
new file mode 100644
index 000000000000..b8d84607b89b
--- /dev/null
+++ b/eng/common/CheckSymbols.ps1
@@ -0,0 +1,158 @@
+param(
+ [Parameter(Mandatory=$true)][string] $InputPath, # Full path to directory where NuGet packages to be checked are stored
+ [Parameter(Mandatory=$true)][string] $ExtractPath, # Full path to directory where the packages will be extracted during validation
+ [Parameter(Mandatory=$true)][string] $SymbolToolPath # Full path to directory where dotnet symbol-tool was installed
+)
+
+Add-Type -AssemblyName System.IO.Compression.FileSystem
+
+function FirstMatchingSymbolDescriptionOrDefault {
+ param(
+ [string] $FullPath, # Full path to the module that has to be checked
+ [string] $TargetServerParam, # Parameter to pass to `Symbol Tool` indicating the server to lookup for symbols
+ [string] $SymbolsPath
+ )
+
+ $FileName = [System.IO.Path]::GetFileName($FullPath)
+ $Extension = [System.IO.Path]::GetExtension($FullPath)
+
+ # Those below are potential symbol files that the `dotnet symbol` might
+ # return. Which one will be returned depend on the type of file we are
+ # checking and which type of file was uploaded.
+
+ # The file itself is returned
+ $SymbolPath = $SymbolsPath + "\" + $FileName
+
+ # PDB file for the module
+ $PdbPath = $SymbolPath.Replace($Extension, ".pdb")
+
+ # PDB file for R2R module (created by crossgen)
+ $NGenPdb = $SymbolPath.Replace($Extension, ".ni.pdb")
+
+ # DBG file for a .so library
+ $SODbg = $SymbolPath.Replace($Extension, ".so.dbg")
+
+ # DWARF file for a .dylib
+ $DylibDwarf = $SymbolPath.Replace($Extension, ".dylib.dwarf")
+
+ .\dotnet-symbol.exe --symbols --modules --windows-pdbs $TargetServerParam $FullPath -o $SymbolsPath | Out-Null
+
+ if (Test-Path $PdbPath) {
+ return "PDB"
+ }
+ elseif (Test-Path $NGenPdb) {
+ return "NGen PDB"
+ }
+ elseif (Test-Path $SODbg) {
+ return "DBG for SO"
+ }
+ elseif (Test-Path $DylibDwarf) {
+ return "Dwarf for Dylib"
+ }
+ elseif (Test-Path $SymbolPath) {
+ return "Module"
+ }
+ else {
+ return $null
+ }
+}
+
+function CountMissingSymbols {
+ param(
+ [string] $PackagePath # Path to a NuGet package
+ )
+
+ # Ensure input file exist
+ if (!(Test-Path $PackagePath)) {
+ throw "Input file does not exist: $PackagePath"
+ }
+
+ # Extensions for which we'll look for symbols
+ $RelevantExtensions = @(".dll", ".exe", ".so", ".dylib")
+
+ # How many files are missing symbol information
+ $MissingSymbols = 0
+
+ $PackageId = [System.IO.Path]::GetFileNameWithoutExtension($PackagePath)
+ $PackageGuid = New-Guid
+ $ExtractPath = Join-Path -Path $ExtractPath -ChildPath $PackageGuid
+ $SymbolsPath = Join-Path -Path $ExtractPath -ChildPath "Symbols"
+
+ [System.IO.Compression.ZipFile]::ExtractToDirectory($PackagePath, $ExtractPath)
+
+ # Makes easier to reference `symbol tool`
+ Push-Location $SymbolToolPath
+
+ Get-ChildItem -Recurse $ExtractPath |
+ Where-Object {$RelevantExtensions -contains $_.Extension} |
+ ForEach-Object {
+ if ($_.FullName -Match "\\ref\\") {
+ Write-Host "`t Ignoring reference assembly file" $_.FullName
+ return
+ }
+
+ $SymbolsOnMSDL = FirstMatchingSymbolDescriptionOrDefault $_.FullName "--microsoft-symbol-server" $SymbolsPath
+ $SymbolsOnSymWeb = FirstMatchingSymbolDescriptionOrDefault $_.FullName "--internal-server" $SymbolsPath
+
+ Write-Host -NoNewLine "`t Checking file" $_.FullName "... "
+
+ if ($SymbolsOnMSDL -ne $null -and $SymbolsOnSymWeb -ne $null) {
+ Write-Host "Symbols found on MSDL (" $SymbolsOnMSDL ") and SymWeb (" $SymbolsOnSymWeb ")"
+ }
+ else {
+ $MissingSymbols++
+
+ if ($SymbolsOnMSDL -eq $null -and $SymbolsOnSymWeb -eq $null) {
+ Write-Host "No symbols found on MSDL or SymWeb!"
+ }
+ else {
+ if ($SymbolsOnMSDL -eq $null) {
+ Write-Host "No symbols found on MSDL!"
+ }
+ else {
+ Write-Host "No symbols found on SymWeb!"
+ }
+ }
+ }
+ }
+
+ Pop-Location
+
+ return $MissingSymbols
+}
+
+function CheckSymbolsAvailable {
+ if (Test-Path $ExtractPath) {
+ Remove-Item $ExtractPath -Force -Recurse -ErrorAction SilentlyContinue
+ }
+
+ Get-ChildItem "$InputPath\*.nupkg" |
+ ForEach-Object {
+ $FileName = $_.Name
+
+ # These packages from Arcade-Services include some native libraries that
+ # our current symbol uploader can't handle. Below is a workaround until
+ # we get issue: https://github.com/dotnet/arcade/issues/2457 sorted.
+ if ($FileName -Match "Microsoft\.DotNet\.Darc\.") {
+ Write-Host "Ignoring Arcade-services file: $FileName"
+ Write-Host
+ return
+ }
+ elseif ($FileName -Match "Microsoft\.DotNet\.Maestro\.Tasks\.") {
+ Write-Host "Ignoring Arcade-services file: $FileName"
+ Write-Host
+ return
+ }
+
+ Write-Host "Validating $FileName "
+ $Status = CountMissingSymbols "$InputPath\$FileName"
+
+ if ($Status -ne 0) {
+ Write-Error "Missing symbols for $Status modules in the package $FileName"
+ }
+
+ Write-Host
+ }
+}
+
+CheckSymbolsAvailable
diff --git a/eng/common/PublishToSymbolServers.proj b/eng/common/PublishToSymbolServers.proj
index 36c08f0ea492..5d55e312b012 100644
--- a/eng/common/PublishToSymbolServers.proj
+++ b/eng/common/PublishToSymbolServers.proj
@@ -24,6 +24,14 @@
+
+
+
+
diff --git a/eng/common/internal/Tools.csproj b/eng/common/internal/Tools.csproj
index 1a81ff906f6e..1a39a7ef3f67 100644
--- a/eng/common/internal/Tools.csproj
+++ b/eng/common/internal/Tools.csproj
@@ -12,8 +12,12 @@
-
- https://devdiv.pkgs.visualstudio.com/_packaging/8f470c7e-ac49-4afe-a6ee-cf784e438b93/nuget/v3/index.json;
+
+
+ https://devdiv.pkgs.visualstudio.com/_packaging/dotnet-core-internal-tooling/nuget/v3/index.json;
+
+
+ $(RestoreSources);
https://devdiv.pkgs.visualstudio.com/_packaging/VS/nuget/v3/index.json;
diff --git a/eng/common/templates/phases/publish-build-assets.yml b/eng/common/templates/phases/publish-build-assets.yml
index 211967debab5..a0a8074282aa 100644
--- a/eng/common/templates/phases/publish-build-assets.yml
+++ b/eng/common/templates/phases/publish-build-assets.yml
@@ -5,6 +5,7 @@ parameters:
condition: succeeded()
continueOnError: false
runAsPublic: false
+ publishUsingPipelines: false
phases:
- phase: Asset_Registry_Publish
displayName: Publish to Build Asset Registry
@@ -36,6 +37,7 @@ phases:
/p:ManifestsPath='$(Build.StagingDirectory)/Download/AssetManifests'
/p:BuildAssetRegistryToken=$(MaestroAccessToken)
/p:MaestroApiEndpoint=https://maestro-prod.westus2.cloudapp.azure.com
+ /p:PublishUsingPipelines=${{ parameters.publishUsingPipelines }}
/p:Configuration=$(_BuildConfig)
condition: ${{ parameters.condition }}
continueOnError: ${{ parameters.continueOnError }}
diff --git a/eng/dogfood.ps1 b/eng/dogfood.ps1
index 9df83a8a4bc6..3b43a6999458 100644
--- a/eng/dogfood.ps1
+++ b/eng/dogfood.ps1
@@ -14,6 +14,7 @@ $restore = $true
. $PSScriptRoot\common\tools.ps1
+. $PSScriptRoot\configure-toolset.ps1
function Print-Usage() {
Write-Host "Common settings:"
diff --git a/eng/dogfood.sh b/eng/dogfood.sh
index 8bd1df53dcad..b873e9d05d1a 100644
--- a/eng/dogfood.sh
+++ b/eng/dogfood.sh
@@ -9,6 +9,7 @@ done
scriptroot="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
. "$scriptroot/common/tools.sh"
+. "$scriptroot/configure-toolset.sh"
InitializeToolset
. "$scriptroot/restore-toolset.sh"
diff --git a/global.json b/global.json
index 7e2738422106..d3ffda95b27f 100644
--- a/global.json
+++ b/global.json
@@ -1,11 +1,11 @@
{
"tools": {
- "dotnet": "3.0.100-preview4-011172",
+ "dotnet": "3.0.100-preview5-011481",
"vs-opt": {
"version": "15.9"
}
},
"msbuild-sdks": {
- "Microsoft.DotNet.Arcade.Sdk": "1.0.0-beta.19206.5"
+ "Microsoft.DotNet.Arcade.Sdk": "1.0.0-beta.19218.7"
}
}
diff --git a/src/Assets/TestProjects/HelloWorldWithSubDirs/HelloWorldWithSubDirs.csproj b/src/Assets/TestProjects/HelloWorldWithSubDirs/HelloWorldWithSubDirs.csproj
new file mode 100644
index 000000000000..c24b9a827154
--- /dev/null
+++ b/src/Assets/TestProjects/HelloWorldWithSubDirs/HelloWorldWithSubDirs.csproj
@@ -0,0 +1,18 @@
+
+
+
+ Exe
+ netcoreapp3.0
+
+
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+ $(ExcludeContent)
+
+
+
+
diff --git a/src/Assets/TestProjects/HelloWorldWithSubDirs/Program.cs b/src/Assets/TestProjects/HelloWorldWithSubDirs/Program.cs
new file mode 100644
index 000000000000..27469c19e660
--- /dev/null
+++ b/src/Assets/TestProjects/HelloWorldWithSubDirs/Program.cs
@@ -0,0 +1,17 @@
+using System;
+using System.IO;
+using System.Reflection;
+
+namespace HelloWorldWithSubDirs
+{
+ class Program
+ {
+ static void Main(string[] args)
+ {
+ string baseDir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
+ string hello = File.ReadAllText(Path.Combine(baseDir, "SmallNameDir", "word"));
+ string world = File.ReadAllText(Path.Combine(baseDir, "SmallNameDir", "This is a directory with a really long name for one that only contains a small file", ".word"));
+ Console.WriteLine($"{hello} {world}");
+ }
+ }
+}
diff --git a/src/Assets/TestProjects/HelloWorldWithSubDirs/Signature.stamp b/src/Assets/TestProjects/HelloWorldWithSubDirs/Signature.stamp
new file mode 100644
index 000000000000..11cfda16d9b2
--- /dev/null
+++ b/src/Assets/TestProjects/HelloWorldWithSubDirs/Signature.stamp
@@ -0,0 +1 @@
+Signed by .Net Core SDK devs.
\ No newline at end of file
diff --git a/src/Assets/TestProjects/HelloWorldWithSubDirs/SmallNameDir/This is a directory with a really long name for one that only contains a small file/.word b/src/Assets/TestProjects/HelloWorldWithSubDirs/SmallNameDir/This is a directory with a really long name for one that only contains a small file/.word
new file mode 100644
index 000000000000..e5b8f9cece33
--- /dev/null
+++ b/src/Assets/TestProjects/HelloWorldWithSubDirs/SmallNameDir/This is a directory with a really long name for one that only contains a small file/.word
@@ -0,0 +1 @@
+World!
\ No newline at end of file
diff --git a/src/Assets/TestProjects/HelloWorldWithSubDirs/SmallNameDir/word b/src/Assets/TestProjects/HelloWorldWithSubDirs/SmallNameDir/word
new file mode 100644
index 000000000000..5ab2f8a4323a
--- /dev/null
+++ b/src/Assets/TestProjects/HelloWorldWithSubDirs/SmallNameDir/word
@@ -0,0 +1 @@
+Hello
\ No newline at end of file
diff --git a/src/Tasks/Common/Resources/Strings.resx b/src/Tasks/Common/Resources/Strings.resx
index 37a66d1d47e6..6b3b2cfbd2df 100644
--- a/src/Tasks/Common/Resources/Strings.resx
+++ b/src/Tasks/Common/Resources/Strings.resx
@@ -498,11 +498,23 @@ The following are names of parameters or literal values and should not be transl
{StrBegin="NETSDK1094: "}
- NETSDK1095: Optimizing assemblies for performance is not supported for the selected target platform or architecture. Either set the ReadyToRun property to false, or use a supported runtime identifier when publishing.
+ NETSDK1095: Optimizing assemblies for performance is not supported for the selected target platform or architecture. Please verify you are publishing a self-contained application using a supported runtime identifier, or set the ReadyToRun property to false.
{StrBegin="NETSDK1095: "}
NETSDK1096: Optimizing assemblies for performance failed. You can either exclude the failing assemblies from being optimized, or set the ReadyToRun property to false.
{StrBegin="NETSDK1096: "}
+
+ NETSDK1097: It is not supported to publish an application to a single-file without specifying a RuntimeIdentifier. Please either specify a RuntimeIdentifier or set PublishSingleFile to false.
+ {StrBegin="NETSDK1097: "}
+
+
+ NETSDK1098: Applications published to a single-file are required to use the application host. Please either set PublishSingleFile to false or set UseAppHost to true.
+ {StrBegin="NETSDK1098: "}
+
+
+ NETSDK1099: Publishing to a single-file is only supported for executable applications.
+ {StrBegin="NETSDK1099: "}
+
diff --git a/src/Tasks/Common/Resources/xlf/Strings.cs.xlf b/src/Tasks/Common/Resources/xlf/Strings.cs.xlf
index 7b01d3ac6d12..b6c8a7a2975f 100644
--- a/src/Tasks/Common/Resources/xlf/Strings.cs.xlf
+++ b/src/Tasks/Common/Resources/xlf/Strings.cs.xlf
@@ -107,6 +107,21 @@
NETSDK1031: Sestavení nebo publikování nezávislé aplikace bez zadání parametru RuntimeIdentifier není podporované. Zadejte prosím buď parametr RuntimeIdentifier, nebo nastavte parametr SelfContained na hodnotu False.
{StrBegin="NETSDK1031: "}
+
+ NETSDK1097: It is not supported to publish an application to a single-file without specifying a RuntimeIdentifier. Please either specify a RuntimeIdentifier or set PublishSingleFile to false.
+ NETSDK1097: It is not supported to publish an application to a single-file without specifying a RuntimeIdentifier. Please either specify a RuntimeIdentifier or set PublishSingleFile to false.
+ {StrBegin="NETSDK1097: "}
+
+
+ NETSDK1098: Applications published to a single-file are required to use the application host. Please either set PublishSingleFile to false or set UseAppHost to true.
+ NETSDK1098: Applications published to a single-file are required to use the application host. Please either set PublishSingleFile to false or set UseAppHost to true.
+ {StrBegin="NETSDK1098: "}
+
+
+ NETSDK1099: Publishing to a single-file is only supported for executable applications.
+ NETSDK1099: Publishing to a single-file is only supported for executable applications.
+ {StrBegin="NETSDK1099: "}
+
NETSDK1013: The TargetFramework value '{0}' was not recognized. It may be misspelled. If not, then the TargetFrameworkIdentifier and/or TargetFrameworkVersion properties must be specified explicitly.
NETSDK1013: Hodnota TargetFramework {0} nebyla rozpoznána. Je možné, že obsahuje překlepy. Pokud tomu tak není, musíte vlastnosti TargetFrameworkIdentifier a TargetFrameworkVersion zadat explicitně.
@@ -407,8 +422,8 @@ The following are names of parameters or literal values and should not be transl
{StrBegin="NETSDK1094: "}
- NETSDK1095: Optimizing assemblies for performance is not supported for the selected target platform or architecture. Either set the ReadyToRun property to false, or use a supported runtime identifier when publishing.
- NETSDK1095: Optimizing assemblies for performance is not supported for the selected target platform or architecture. Either set the ReadyToRun property to false, or use a supported runtime identifier when publishing.
+ NETSDK1095: Optimizing assemblies for performance is not supported for the selected target platform or architecture. Please verify you are publishing a self-contained application using a supported runtime identifier, or set the ReadyToRun property to false.
+ NETSDK1095: Optimizing assemblies for performance is not supported for the selected target platform or architecture. Please verify you are publishing a self-contained application using a supported runtime identifier, or set the ReadyToRun property to false.
{StrBegin="NETSDK1095: "}
@@ -488,4 +503,4 @@ The following are names of parameters or literal values and should not be transl