Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 10 additions & 1 deletion eng/Publishing.props
Original file line number Diff line number Diff line change
Expand Up @@ -43,10 +43,19 @@
<Artifact Remove="@(MsiPackages)" />
</ItemGroup>

<ItemGroup Condition="'$(PublishingWorkloadMsiInternal)' == 'true'">
<!-- In 2xx+ bands, MSI packages are downloaded from the 1xx build rather than built locally.
Mark them as Internal to avoid republishing. -->
<ItemGroup Condition="'$(DownloadWorkloadMsis)' == 'true'">
<Artifact Update="$(ArtifactsShippingPackagesDir)*.Msi.*.nupkg" Visibility="Internal" />
</ItemGroup>

<!-- In 2xx+ bands, don't publish workload manifest packages since these are versioned the same as the 1xx
band and would cause conflicts. -->
<ItemGroup Condition="'$(DotNet1xxWorkloadManifestVersion)' != ''">
<Artifact Update="$(ArtifactsShippingPackagesDir)Microsoft.NET.Workload.*.Manifest-*.nupkg" Visibility="Internal" />
<Artifact Update="$(ArtifactsNonShippingPackagesDir)Microsoft.NET.Workload.*.Manifest-*.nupkg" Visibility="Internal" />
</ItemGroup>

<Target Name="GetNonStableProductVersion">
<!-- Retrieve the non-stable product version. -->
<MSBuild Projects="$(RepoRoot)src\Layout\redist\redist.csproj"
Expand Down
254 changes: 121 additions & 133 deletions eng/Version.Details.props

Large diffs are not rendered by default.

376 changes: 192 additions & 184 deletions eng/Version.Details.xml

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion eng/common/internal-feed-operations.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ function SetupCredProvider {
$url = 'https://raw.githubusercontent.com/microsoft/artifacts-credprovider/master/helpers/installcredprovider.ps1'

Write-Host "Writing the contents of 'installcredprovider.ps1' locally..."
Invoke-WebRequest $url -OutFile installcredprovider.ps1
Invoke-WebRequest $url -UseBasicParsing -OutFile installcredprovider.ps1

Write-Host 'Installing plugin...'
.\installcredprovider.ps1 -Force
Expand Down
2 changes: 1 addition & 1 deletion eng/common/post-build/nuget-verification.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ if ($NuGetExePath) {
Write-Host "Downloading nuget.exe from $nugetExeUrl..."
$ProgressPreference = 'SilentlyContinue'
try {
Invoke-WebRequest $nugetExeUrl -OutFile $downloadedNuGetExe
Invoke-WebRequest $nugetExeUrl -UseBasicParsing -OutFile $downloadedNuGetExe
$ProgressPreference = 'Continue'
} catch {
$ProgressPreference = 'Continue'
Expand Down
6 changes: 3 additions & 3 deletions eng/common/tools.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -277,7 +277,7 @@ function GetDotNetInstallScript([string] $dotnetRoot) {

Retry({
Write-Host "GET $uri"
Invoke-WebRequest $uri -OutFile $installScript
Invoke-WebRequest $uri -UseBasicParsing -OutFile $installScript
})
}

Expand Down Expand Up @@ -510,7 +510,7 @@ function InitializeXCopyMSBuild([string]$packageVersion, [bool]$install) {
Write-Host "Downloading $packageName $packageVersion"
$ProgressPreference = 'SilentlyContinue' # Don't display the console progress UI - it's a huge perf hit
Retry({
Invoke-WebRequest "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng/nuget/v3/flat2/$packageName/$packageVersion/$packageName.$packageVersion.nupkg" -OutFile $packagePath
Invoke-WebRequest "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng/nuget/v3/flat2/$packageName/$packageVersion/$packageName.$packageVersion.nupkg" -UseBasicParsing -OutFile $packagePath
})

if (!(Test-Path $packagePath)) {
Expand Down Expand Up @@ -556,7 +556,7 @@ function LocateVisualStudio([object]$vsRequirements = $null){
Write-Host "Downloading vswhere $vswhereVersion"
$ProgressPreference = 'SilentlyContinue' # Don't display the console progress UI - it's a huge perf hit
Retry({
Invoke-WebRequest "https://netcorenativeassets.blob.core.windows.net/resource-packages/external/windows/vswhere/$vswhereVersion/vswhere.exe" -OutFile $vswhereExe
Invoke-WebRequest "https://netcorenativeassets.blob.core.windows.net/resource-packages/external/windows/vswhere/$vswhereVersion/vswhere.exe" -UseBasicParsing -OutFile $vswhereExe
})
}

Expand Down
6 changes: 3 additions & 3 deletions global.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"errorMessage": "The .NET SDK is not installed or is not configured correctly. Please run ./build to install the correct SDK version locally."
},
"tools": {
"dotnet": "10.0.100",
"dotnet": "10.0.101",
"runtimes": {
"dotnet": [
"$(MicrosoftNETCorePlatformsPackageVersion)"
Expand All @@ -21,8 +21,8 @@
}
},
"msbuild-sdks": {
"Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.25611.1",
"Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.25611.1",
"Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26072.101",
"Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.26072.101",
"Microsoft.Build.NoTargets": "3.7.0",
"Microsoft.Build.Traversal": "3.4.0",
"Microsoft.WixToolset.Sdk": "5.0.2-dotnet.2811440"
Expand Down
1 change: 1 addition & 0 deletions src/Workloads/Manifests/Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
<IsShipping Condition="'$(MSBuildProjectName)' == 'Microsoft.NET.Workload.Emscripten.Current.Transport.Manifest'">false</IsShipping>
<IsShippingPackage>$(IsShipping)</IsShippingPackage>
<IncludeSymbols>false</IncludeSymbols>
<PackageVersion Condition="'$(DotNet1xxWorkloadManifestVersion)' != ''">$(DotNet1xxWorkloadManifestVersion)</PackageVersion>
</PropertyGroup>

<PropertyGroup>
Expand Down
7 changes: 6 additions & 1 deletion src/Workloads/Manifests/manifest-packages.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,14 @@
</ItemGroup>

<Target Name="LayoutBuiltinManifests">

<PropertyGroup>
<_VersionOverride Condition="'$(DotNet1xxWorkloadManifestVersion)' != ''">Version=$(DotNet1xxWorkloadManifestVersion)</_VersionOverride>
</PropertyGroup>

<MSBuild Projects="@(ProjectReference)"
Targets="LayoutManifest"
Properties="ManifestDirectory=$(ManifestDirectory)" />
Properties="ManifestDirectory=$(ManifestDirectory);$(_VersionOverride)" />
</Target>

</Project>
110 changes: 104 additions & 6 deletions src/Workloads/VSInsertion/workloads.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -80,9 +80,10 @@
<RuntimeWorkloadPacksToDownload Include="Microsoft.NETCore.App.Runtime.Mono.browser-wasm" />
<RuntimeWorkloadPacksToDownload Include="Microsoft.NETCore.App.Runtime.Mono.multithread.browser-wasm" />
<RuntimeWorkloadPacksToDownload Include="Microsoft.NETCore.App.Runtime.Mono.wasi-wasm" />
<RuntimeWorkloadPacksToDownload Include="Microsoft.NETCore.App.Runtime.win-arm64" />
<RuntimeWorkloadPacksToDownload Include="Microsoft.NETCore.App.Runtime.win-x64" />
<RuntimeWorkloadPacksToDownload Include="Microsoft.NETCore.App.Runtime.win-x86" />
<!-- Windows runtime packages don't need MSI wrappers - they're included in the SDK, not installed as workloads -->
<RuntimeWorkloadPacksToDownload Include="Microsoft.NETCore.App.Runtime.win-arm64" ExcludeAsMsi="true" />
<RuntimeWorkloadPacksToDownload Include="Microsoft.NETCore.App.Runtime.win-x64" ExcludeAsMsi="true" />
<RuntimeWorkloadPacksToDownload Include="Microsoft.NETCore.App.Runtime.win-x86" ExcludeAsMsi="true" />

<EmsdkWorkloadPacksToDownload Include="Microsoft.NET.Runtime.Emscripten.$(EmscriptenVersionCurrent).Cache.win-x64" />
<EmsdkWorkloadPacksToDownload Include="Microsoft.NET.Runtime.Emscripten.$(EmscriptenVersionCurrent).Cache.win-arm64" />
Expand All @@ -94,13 +95,82 @@
<EmsdkWorkloadPacksToDownload Include="Microsoft.NET.Runtime.Emscripten.$(EmscriptenVersionCurrent).Sdk.win-arm64" />
</ItemGroup>

<ItemGroup Condition="'$(BuildWorkloads)' == 'true'">
<ItemGroup>
<!-- Dynamically discover manifest project files -->
<_ManifestProjectFiles Include="../Manifests/**/*.proj" Exclude="../Manifests/**/*.Transport.*/*.proj" />
<!-- Extract package names from file paths (e.g., Microsoft.NET.Workload.Mono.Toolchain.Current.Manifest.proj -> Microsoft.NET.Workload.Mono.Toolchain.Current.Manifest) -->
<ManifestPackagesToDownload Include="@(_ManifestProjectFiles->'%(Filename)')" />
</ItemGroup>

<ItemGroup Condition="'$(BuildWorkloads)' == 'true' and '$(DownloadWorkloadMsis)' != 'true'">
<!-- we use MicrosoftNETCoreAppRuntimePackageVersion for both runtime and emsdk packages since they're aligned in VMR builds -->
<PackageDownload Include="@(RuntimeWorkloadPacksToDownload)" Version="[$(MicrosoftNETCoreAppRuntimePackageVersion)]" />
<PackageDownload Include="@(EmsdkWorkloadPacksToDownload)" Version="[$(MicrosoftNETCoreAppRuntimePackageVersion)]" />
</ItemGroup>

<Target Name="_CollectDownloadedWorkloadPacks">
<Target Name="_AddMsiPackageDownloads"
BeforeTargets="CollectPackageDownloads"
Condition="'$(BuildWorkloads)' == 'true' and '$(DownloadWorkloadMsis)' == 'true'">
<ItemGroup>
<!-- MSI packages for RuntimeWorkloadPacksToDownload -->
<!-- For RID-specific packages, add single MSI with matching architecture -->
<PackageDownload Include="%(RuntimeWorkloadPacksToDownload.Identity).Msi.x64"
Version="[$(DotNet1xxRuntimeVersion)]"
Condition="$([System.String]::Copy('%(RuntimeWorkloadPacksToDownload.Identity)').Contains('.win-x64')) and '%(RuntimeWorkloadPacksToDownload.ExcludeAsMsi)' != 'true'" />
<PackageDownload Include="%(RuntimeWorkloadPacksToDownload.Identity).Msi.x86"
Version="[$(DotNet1xxRuntimeVersion)]"
Condition="$([System.String]::Copy('%(RuntimeWorkloadPacksToDownload.Identity)').Contains('.win-x86')) and '%(RuntimeWorkloadPacksToDownload.ExcludeAsMsi)' != 'true'" />
<PackageDownload Include="%(RuntimeWorkloadPacksToDownload.Identity).Msi.arm64"
Version="[$(DotNet1xxRuntimeVersion)]"
Condition="$([System.String]::Copy('%(RuntimeWorkloadPacksToDownload.Identity)').Contains('.win-arm64')) and '%(RuntimeWorkloadPacksToDownload.ExcludeAsMsi)' != 'true'" />

<!-- For non-RID-specific packages, add MSI packages for all three architectures -->
<PackageDownload Include="%(RuntimeWorkloadPacksToDownload.Identity).Msi.x86"
Version="[$(DotNet1xxRuntimeVersion)]"
Condition="!$([System.String]::Copy('%(RuntimeWorkloadPacksToDownload.Identity)').Contains('.win-')) and '%(RuntimeWorkloadPacksToDownload.ExcludeAsMsi)' != 'true'" />
<PackageDownload Include="%(RuntimeWorkloadPacksToDownload.Identity).Msi.x64"
Version="[$(DotNet1xxRuntimeVersion)]"
Condition="!$([System.String]::Copy('%(RuntimeWorkloadPacksToDownload.Identity)').Contains('.win-')) and '%(RuntimeWorkloadPacksToDownload.ExcludeAsMsi)' != 'true'" />
<PackageDownload Include="%(RuntimeWorkloadPacksToDownload.Identity).Msi.arm64"
Version="[$(DotNet1xxRuntimeVersion)]"
Condition="!$([System.String]::Copy('%(RuntimeWorkloadPacksToDownload.Identity)').Contains('.win-')) and '%(RuntimeWorkloadPacksToDownload.ExcludeAsMsi)' != 'true'" />

<!-- MSI packages for EmsdkWorkloadPacksToDownload -->
<!-- For RID-specific packages, add single MSI with matching architecture -->
<PackageDownload Include="%(EmsdkWorkloadPacksToDownload.Identity).Msi.x64"
Version="[$(DotNet1xxRuntimeVersion)]"
Condition="$([System.String]::Copy('%(EmsdkWorkloadPacksToDownload.Identity)').Contains('.win-x64'))" />
<PackageDownload Include="%(EmsdkWorkloadPacksToDownload.Identity).Msi.x86"
Version="[$(DotNet1xxRuntimeVersion)]"
Condition="$([System.String]::Copy('%(EmsdkWorkloadPacksToDownload.Identity)').Contains('.win-x86'))" />
<PackageDownload Include="%(EmsdkWorkloadPacksToDownload.Identity).Msi.arm64"
Version="[$(DotNet1xxRuntimeVersion)]"
Condition="$([System.String]::Copy('%(EmsdkWorkloadPacksToDownload.Identity)').Contains('.win-arm64'))" />

<!-- For non-RID-specific packages, add MSI packages for all three architectures -->
<PackageDownload Include="%(EmsdkWorkloadPacksToDownload.Identity).Msi.x86"
Version="[$(DotNet1xxRuntimeVersion)]"
Condition="!$([System.String]::Copy('%(EmsdkWorkloadPacksToDownload.Identity)').Contains('.win-'))" />
<PackageDownload Include="%(EmsdkWorkloadPacksToDownload.Identity).Msi.x64"
Version="[$(DotNet1xxRuntimeVersion)]"
Condition="!$([System.String]::Copy('%(EmsdkWorkloadPacksToDownload.Identity)').Contains('.win-'))" />
<PackageDownload Include="%(EmsdkWorkloadPacksToDownload.Identity).Msi.arm64"
Version="[$(DotNet1xxRuntimeVersion)]"
Condition="!$([System.String]::Copy('%(EmsdkWorkloadPacksToDownload.Identity)').Contains('.win-'))" />

<!-- MSI packages for ManifestPackagesToDownload -->
<!-- Manifest packages are not RID-specific, add MSI packages for all three architectures -->
<PackageDownload Include="%(ManifestPackagesToDownload.Identity)-$(BuiltInWorkloadFeatureBand).Msi.x86"
Version="[$(DotNet1xxWorkloadManifestVersion)]" />
<PackageDownload Include="%(ManifestPackagesToDownload.Identity)-$(BuiltInWorkloadFeatureBand).Msi.x64"
Version="[$(DotNet1xxWorkloadManifestVersion)]" />
<PackageDownload Include="%(ManifestPackagesToDownload.Identity)-$(BuiltInWorkloadFeatureBand).Msi.arm64"
Version="[$(DotNet1xxWorkloadManifestVersion)]" />
</ItemGroup>
</Target>

<Target Name="_CollectDownloadedWorkloadPacks"
Condition="'$(BuildWorkloads)' == 'true' and '$(DownloadWorkloadMsis)' != 'true'">
<ItemGroup>
<DownloadedWorkloadPacks Include="$(NuGetPackageRoot)\%(RuntimeWorkloadPacksToDownload.Identity)\$(MicrosoftNETCoreAppRuntimePackageVersion)\*.nupkg" />
<DownloadedWorkloadPacks Include="$(NuGetPackageRoot)\%(EmsdkWorkloadPacksToDownload.Identity)\$(MicrosoftNETCoreAppRuntimePackageVersion)\*.nupkg" />
Expand All @@ -111,7 +181,35 @@
UseHardlinksIfPossible="true" />
</Target>

<Target Name="Build" DependsOnTargets="ResolveProjectReferences;GetAssemblyVersion;_GetVersionProps;_GenerateMsiVersionString;_CollectDownloadedWorkloadPacks" Condition="'$(BuildWorkloads)' == 'true'">
<Target Name="Build"
DependsOnTargets="
ResolveProjectReferences;
GetAssemblyVersion;
_GetVersionProps;
_GenerateMsiVersionString;
_CollectDownloadedWorkloadPacks;
_CollectDownloadedWorkloadMsis;
BuildWorkloadMsis"
Condition="'$(BuildWorkloads)' == 'true'">
</Target>

<Target Name="_CollectDownloadedWorkloadMsis"
Condition="'$(BuildWorkloads)' == 'true' and '$(DownloadWorkloadMsis)' == 'true'">
<ItemGroup>
<DownloadedWorkloadMsis Include="$(NuGetPackageRoot)\%(RuntimeWorkloadPacksToDownload.Identity).Msi.*\$(DotNet1xxRuntimeVersion)\*.nupkg"
Condition="'%(RuntimeWorkloadPacksToDownload.ExcludeAsMsi)' != 'true'" />
<DownloadedWorkloadMsis Include="$(NuGetPackageRoot)\%(EmsdkWorkloadPacksToDownload.Identity).Msi.*\$(DotNet1xxRuntimeVersion)\*.nupkg" />
<DownloadedWorkloadMsis Include="$(NuGetPackageRoot)\%(ManifestPackagesToDownload.Identity)-$(BuiltInWorkloadFeatureBand).Msi.*\$(DotNet1xxWorkloadManifestVersion)\*.nupkg" />
</ItemGroup>

<!-- Copy to shipping packages directory so they appear as build outputs -->
<Copy SourceFiles="@(DownloadedWorkloadMsis)"
DestinationFolder="$(ArtifactsShippingPackagesDir)"
UseHardlinksIfPossible="true" />
</Target>

<Target Name="BuildWorkloadMsis"
Condition="'$(BuildWorkloads)' == 'true' and '$(DownloadWorkloadMsis)' != 'true'">
<ItemGroup>
<!-- Overrides for Visual Studio setup generation. If the workload definition IDs change,
these must be updated. -->
Expand Down