Update dependencies from dotnet/arcade dotnet/roslyn nuget/nuget.client (#9041)

* Disable IDE0005

To be correctly enabled, this requires documentation files, which are disabled in our repo at the moment.

* Update dependencies from https://github.com/dotnet/arcade build 20230714.2

Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.XUnitExtensions
 From Version 8.0.0-beta.23213.1 -> To Version 8.0.0-beta.23364.2

Dependency coherency updates

Microsoft.SourceLink.GitHub,Microsoft.DotNet.XliffTasks
 From Version 1.1.0-beta-21480-02 -> To Version 8.0.0-beta.23361.2 (parent: Microsoft.DotNet.Arcade.Sdk

* Remove explicit xunit.core and xunit.assert package reference because they are referenced implicitly

* Remove the attributes in Xunit.NetCore.Extensions which are included in Microsoft.DotNet.XUnitExtensions

* Mark obsolete legacy serialization support APIs using the SYSLIB0051 diagnostic code and suppress SYSLIB0050 warning

* Replace Assert.Same with Assert.Equal

* Work around deprecated Serialization/Deserialization of BinaryFormatter

* Use default source-build job template

* Update dependencies from https://github.com/dotnet/roslyn build 20230718.11

Microsoft.Net.Compilers.Toolset
 From Version 4.7.0-3.23361.9 -> To Version 4.8.0-1.23368.11

* Update dependencies from https://github.com/nuget/nuget.client build 6.8.0.35

NuGet.Build.Tasks
 From Version 6.7.0-rc.111 -> To Version 6.8.0-preview.1.35

* Update sourcebuild baselines for Arcade + SDK 8

* Minimize STJ reference

* Suppress CP1002

I think this is being fired because the old package targets net7 and the new one targets net8, causing it to fail to load the old reference. We don't have the references available easily to use PackageValidationReferencePath, so suppressing it.

* Revert PackageVersion of xunit.console back to eng/Package.props and comment on PackageVersion of xunit.core in individual project

* Further simplify xunit ref in extensions library

---------

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Rainer Sigwald <raines@microsoft.com>
Co-authored-by: Jenny Bai <v-jennybai@microsoft.com>
Co-authored-by: Gang Wang <v-gaw@microsoft.com>
Co-authored-by: Michael Simons <msimons@microsoft.com>
This commit is contained in:
dotnet-maestro[bot] 2023-07-24 17:16:30 +02:00 коммит произвёл GitHub
Родитель ee4e077220
Коммит 5410bf3234
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
65 изменённых файлов: 367 добавлений и 379 удалений

Просмотреть файл

@ -210,7 +210,7 @@ dotnet_analyzer_diagnostic.category-Style.severity = warning
dotnet_diagnostic.IDE0004.severity = suggestion
# IDE0005: Remove unnecessary usings/imports
dotnet_diagnostic.IDE0005.severity = warning
dotnet_diagnostic.IDE0005.severity = none
# Use explicit type instead of 'var'
dotnet_diagnostic.IDE0008.severity = suggestion

Просмотреть файл

@ -234,8 +234,4 @@ jobs:
continueOnError: true
condition: always()
- template: /eng/common/templates/job/source-build.yml
parameters:
platform:
name: 'Managed'
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:centos-7'
- template: /eng/common/templates/jobs/source-build.yml

Просмотреть файл

@ -43,6 +43,14 @@
<PropertyGroup>
<GenerateNeutralResourcesLanguageAttribute>false</GenerateNeutralResourcesLanguageAttribute>
<!--
Serialization/Deserialization of BinaryFormatter throws out System.NotSupportedException with latest .NET.
To work around temporarily add this property. The issues below are tracking this problem.
https://github.com/dotnet/msbuild/issues/9051
https://github.com/dotnet/msbuild/issues/8823
-->
<EnableUnsafeBinaryFormatterSerialization>true</EnableUnsafeBinaryFormatterSerialization>
<!--
NU1507: ManagePackageVersionsCentrally implies source mapping, which we should consider turning on but it's nontrivial
NU1603: Microsoft.xunit.netcore.extensions package has dependencies to versions which aren't published, so ignore those warnings

Просмотреть файл

@ -30,8 +30,6 @@
<PackageVersion Include="System.Text.Encoding.CodePages" Version="$(SystemTextEncodingCodePagesVersion)" />
<PackageVersion Include="System.Text.Json" Version="$(SystemTextJsonVersion)" />
<PackageVersion Include="System.Threading.Tasks.Dataflow" Version="$(SystemThreadingTasksDataflowVersion)" />
<PackageVersion Include="xunit.assert" Version="$(XUnitVersion)" />
<PackageVersion Include="xunit.console" Version="$(XUnitVersion)" />
<PackageVersion Include="xunit.core" Version="$(XUnitVersion)" />
</ItemGroup>
</Project>

Просмотреть файл

@ -5,39 +5,14 @@
<IgnorePatterns>
<UsagePattern IdentityGlob="Microsoft.SourceBuild.Intermediate.*/*" />
<!-- These dependencies are a result of building for netframework TFMs. These are filtered out
in full source-build, and would be filtered out if msbuild was using an 8.0 arcade + 8.0 SDK -->
<UsagePattern IdentityGlob="Microsoft.NETFramework.ReferenceAssemblies/*1.0.3*" />
<UsagePattern IdentityGlob="Microsoft.NETFramework.ReferenceAssemblies.net472/*1.0.3*" />
<!-- Baseline 7.0 dependencies until msbuild targets net8 and uses a net8 arcade, SBRP, etc.
These cannot be added to 7.0 SBRP, because they would are produced in the 7.0 build. -->
<UsagePattern IdentityGlob="Microsoft.Bcl.AsyncInterfaces/*7.0.0*" />
<UsagePattern IdentityGlob="Microsoft.Win32.SystemEvents/*7.0.0*" />
<UsagePattern IdentityGlob="System.CodeDom/*7.0.0*" />
<UsagePattern IdentityGlob="System.Collections.Immutable/*7.0.0*" />
<UsagePattern IdentityGlob="System.Configuration.ConfigurationManager/*7.0.0*" />
<UsagePattern IdentityGlob="System.Diagnostics.EventLog/*7.0.0*" />
<UsagePattern IdentityGlob="System.Drawing.Common/*7.0.0*" />
<UsagePattern IdentityGlob="System.Formats.Asn1/*7.0.0*" />
<UsagePattern IdentityGlob="System.Reflection.Metadata/*7.0.0*" />
<UsagePattern IdentityGlob="System.Reflection.MetadataLoadContext/*7.0.0*" />
<UsagePattern IdentityGlob="System.Resources.Extensions/*7.0.0*" />
<UsagePattern IdentityGlob="System.Security.Cryptography.Pkcs/*7.0.2*" />
<UsagePattern IdentityGlob="System.Security.Cryptography.ProtectedData/*7.0.0*" />
<UsagePattern IdentityGlob="System.Security.Cryptography.Xml/*7.0.1*" />
<UsagePattern IdentityGlob="System.Security.Permissions/*7.0.0*" />
<UsagePattern IdentityGlob="System.Text.Encoding.CodePages/*7.0.0*" />
<UsagePattern IdentityGlob="System.Text.Encodings.Web/*7.0.0*" />
<UsagePattern IdentityGlob="System.Text.Json/*7.0.3*" />
<UsagePattern IdentityGlob="System.Threading.Tasks.Dataflow/*7.0.0*" />
<UsagePattern IdentityGlob="System.Windows.Extensions/*7.0.0*" />
</IgnorePatterns>
<Usages>
<Usage Id="Microsoft.Build.Tasks.Git" Version="8.0.0-beta.23211.2" />
<Usage Id="Microsoft.DotNet.XliffTasks" Version="1.0.0-beta.23211.1" IsDirectDependency="true" IsAutoReferenced="true" />
<Usage Id="Microsoft.SourceLink.AzureRepos.Git" Version="8.0.0-beta.23211.2" IsDirectDependency="true" IsAutoReferenced="true" />
<Usage Id="Microsoft.SourceLink.Common" Version="8.0.0-beta.23211.2" />
<Usage Id="Microsoft.SourceLink.GitHub" Version="8.0.0-beta.23211.2" IsDirectDependency="true" IsAutoReferenced="true" />
</Usages>
</UsageData>

Просмотреть файл

@ -1,9 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<Dependencies>
<ProductDependencies>
<Dependency Name="Microsoft.SourceBuild.Intermediate.source-build-reference-packages" Version="7.0.0-alpha.1.23219.1">
<Dependency Name="Microsoft.SourceBuild.Intermediate.source-build-reference-packages" Version="8.0.0-alpha.1.23368.2">
<Uri>https://github.com/dotnet/source-build-reference-packages</Uri>
<Sha>525b6c35cc5c5c9b80b47044be2e4e77858d505a</Sha>
<Sha>529fbc2aad419d0c1551d6685cc68be33e62a996</Sha>
<SourceBuild RepoName="source-build-reference-packages" ManagedOnly="true" />
</Dependency>
<!-- Necessary for source-build due to being a transitive dependency of System.Reflection.MetadataLoadContext.
@ -37,35 +37,34 @@
<Uri>https://github.com/dotnet/runtime</Uri>
<Sha>d099f075e45d2aa6007a22b71b45a08758559f80</Sha>
</Dependency>
<Dependency Name="System.Text.Json" Version="7.0.3">
<Uri>https://github.com/dotnet/runtime</Uri>
<Sha>5b20af47d99620150c53eaf5db8636fdf730b126</Sha>
</Dependency>
</ProductDependencies>
<ToolsetDependencies>
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="8.0.0-beta.23213.1">
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="8.0.0-beta.23364.2">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>fb14cae30eacbe844468ac297b3d4c61e0bb9dc0</Sha>
<Sha>60ea5b2eca5af06fc63b250f8669d2c70179b18c</Sha>
<SourceBuild RepoName="arcade" ManagedOnly="true" />
</Dependency>
<Dependency Name="Microsoft.SourceLink.GitHub" Version="8.0.0-beta.23211.2" CoherentParentDependency="Microsoft.DotNet.Arcade.Sdk">
<Uri>https://github.com/dotnet/sourcelink</Uri>
<Sha>4cf2eb17c295905edeca76a9afe6dda42988359e</Sha>
<SourceBuild RepoName="sourcelink" ManagedOnly="true" />
</Dependency>
<Dependency Name="Microsoft.DotNet.XliffTasks" Version="1.0.0-beta.23211.1" CoherentParentDependency="Microsoft.DotNet.Arcade.Sdk">
<Dependency Name="Microsoft.DotNet.XliffTasks" Version="1.0.0-beta.23360.1" CoherentParentDependency="Microsoft.DotNet.Arcade.Sdk">
<Uri>https://github.com/dotnet/xliff-tasks</Uri>
<Sha>ce5066cd85c138c257a981f9c95257e9c577a5ee</Sha>
<Sha>a171b61473272e5a6d272117963864ba958a012a</Sha>
<SourceBuild RepoName="xliff-tasks" ManagedOnly="true" />
</Dependency>
<Dependency Name="NuGet.Build.Tasks" Version="6.7.0-rc.111">
<Dependency Name="NuGet.Build.Tasks" Version="6.8.0-preview.1.41">
<Uri>https://github.com/nuget/nuget.client</Uri>
<Sha>13f2b6af6e9864711e815cfbffd7aa5015c52cec</Sha>
<Sha>972557a7258d77dbaed3b7a649d2f13a4083f94c</Sha>
</Dependency>
<Dependency Name="Microsoft.Net.Compilers.Toolset" Version="4.7.0-3.23361.9">
<Dependency Name="Microsoft.Net.Compilers.Toolset" Version="4.8.0-1.23372.1">
<Uri>https://github.com/dotnet/roslyn</Uri>
<Sha>91c9c05370d84a902010c9e1f80aebcc3a467792</Sha>
<Sha>2a594fa2157a734a988f7b5dbac99484781599bd</Sha>
<SourceBuild RepoName="roslyn" ManagedOnly="true" />
</Dependency>
<Dependency Name="Microsoft.DotNet.XUnitExtensions" Version="6.0.0-beta.23313.5">
<Dependency Name="Microsoft.DotNet.XUnitExtensions" Version="8.0.0-beta.23364.2">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>91616785a1a6578c83f7e93d98c34a1eb83d6223</Sha>
<Sha>60ea5b2eca5af06fc63b250f8669d2c70179b18c</Sha>
</Dependency>
</ToolsetDependencies>
</Dependencies>

Просмотреть файл

@ -48,15 +48,14 @@
Otherwise, this version of dotnet will not be installed and the build will error out. -->
<DotNetCliVersion>$([System.Text.RegularExpressions.Regex]::Match($([System.IO.File]::ReadAllText('$(MSBuildThisFileDirectory)..\global.json')), '"dotnet": "([^"]*)"').Groups.get_Item(1))</DotNetCliVersion>
<MicrosoftCodeAnalysisCollectionsVersion>4.2.0-1.22102.8</MicrosoftCodeAnalysisCollectionsVersion>
<MicrosoftDotNetXUnitExtensionsVersion>6.0.0-beta.23313.5</MicrosoftDotNetXUnitExtensionsVersion>
<MicrosoftDotNetXUnitExtensionsVersion>8.0.0-beta.23364.2</MicrosoftDotNetXUnitExtensionsVersion>
<MicrosoftExtensionsDependencyModelVersion>7.0.0</MicrosoftExtensionsDependencyModelVersion>
<MicrosoftIORedistVersion>6.0.0</MicrosoftIORedistVersion>
<MicrosoftNetCompilersToolsetVersion>4.7.0-3.23361.9</MicrosoftNetCompilersToolsetVersion>
<NuGetBuildTasksVersion>6.7.0-rc.111</NuGetBuildTasksVersion>
<MicrosoftNetCompilersToolsetVersion>4.8.0-1.23372.1</MicrosoftNetCompilersToolsetVersion>
<NuGetBuildTasksVersion>6.8.0-preview.1.41</NuGetBuildTasksVersion>
<SystemRuntimeCompilerServicesUnsafeVersion>6.0.0</SystemRuntimeCompilerServicesUnsafeVersion>
<SystemTextJsonVersion>7.0.3</SystemTextJsonVersion>
<SystemThreadingTasksDataflowVersion>7.0.0</SystemThreadingTasksDataflowVersion>
<XunitVersion>2.4.2</XunitVersion>
</PropertyGroup>
<Target Name="OverrideArcadeFileVersion" AfterTargets="_InitializeAssemblyVersion">
<!-- See https://github.com/dotnet/arcade/issues/3386

Просмотреть файл

@ -92,7 +92,7 @@ try {
{
$buildToolPath = $dotnetExePath
$buildToolCommand = Join-Path $bootstrapRoot "net8.0\MSBuild\MSBuild.dll"
$buildToolFramework = "netcoreapp3.1"
$buildToolFramework = "net8.0"
}
# Use separate artifacts folder for stage 2

Просмотреть файл

@ -64,7 +64,7 @@ if [ $host_type = "core" ]
then
_InitializeBuildTool="$_InitializeDotNetCli/dotnet"
_InitializeBuildToolCommand="$bootstrapRoot/net8.0/MSBuild/MSBuild.dll"
_InitializeBuildToolFramework="netcoreapp3.1"
_InitializeBuildToolFramework="net8.0"
elif [ $host_type = "mono" ]
then
export _InitializeBuildTool="mono"

90
eng/common/cross/build-rootfs.sh сгенерированный поставляемый
Просмотреть файл

@ -27,6 +27,7 @@ __AlpineArch=armv7
__FreeBSDArch=arm
__FreeBSDMachineArch=armv7
__IllumosArch=arm7
__HaikuArch=arm
__QEMUArch=arm
__UbuntuArch=armhf
__UbuntuRepo="http://ports.ubuntu.com/"
@ -70,7 +71,7 @@ __AlpinePackages+=" krb5-dev"
__AlpinePackages+=" openssl-dev"
__AlpinePackages+=" zlib-dev"
__FreeBSDBase="12.3-RELEASE"
__FreeBSDBase="12.4-RELEASE"
__FreeBSDPkg="1.17.0"
__FreeBSDABI="12"
__FreeBSDPackages="libunwind"
@ -85,8 +86,12 @@ __IllumosPackages+=" mit-krb5"
__IllumosPackages+=" openssl"
__IllumosPackages+=" zlib"
__HaikuPackages="gmp"
__HaikuPackages="gcc_syslibs"
__HaikuPackages+=" gcc_syslibs_devel"
__HaikuPackages+=" gmp"
__HaikuPackages+=" gmp_devel"
__HaikuPackages+=" icu66"
__HaikuPackages+=" icu66_devel"
__HaikuPackages+=" krb5"
__HaikuPackages+=" krb5_devel"
__HaikuPackages+=" libiconv"
@ -95,6 +100,10 @@ __HaikuPackages+=" llvm12_libunwind"
__HaikuPackages+=" llvm12_libunwind_devel"
__HaikuPackages+=" mpfr"
__HaikuPackages+=" mpfr_devel"
__HaikuPackages+=" openssl"
__HaikuPackages+=" openssl_devel"
__HaikuPackages+=" zlib"
__HaikuPackages+=" zlib_devel"
# ML.NET dependencies
__UbuntuPackages+=" libomp5"
@ -210,6 +219,7 @@ while :; do
__FreeBSDArch=amd64
__FreeBSDMachineArch=amd64
__illumosArch=x86_64
__HaikuArch=x86_64
__UbuntuRepo="http://archive.ubuntu.com/ubuntu/"
;;
x86)
@ -330,7 +340,7 @@ while :; do
;;
freebsd13)
__CodeName=freebsd
__FreeBSDBase="13.0-RELEASE"
__FreeBSDBase="13.2-RELEASE"
__FreeBSDABI="13"
__SkipUnmount=1
;;
@ -340,7 +350,6 @@ while :; do
;;
haiku)
__CodeName=haiku
__BuildArch=x64
__SkipUnmount=1
;;
--skipunmount)
@ -559,67 +568,54 @@ elif [[ "$__CodeName" == "illumos" ]]; then
elif [[ "$__CodeName" == "haiku" ]]; then
JOBS=${MAXJOBS:="$(getconf _NPROCESSORS_ONLN)"}
echo "Building Haiku sysroot for x86_64"
echo "Building Haiku sysroot for $__HaikuArch"
mkdir -p "$__RootfsDir/tmp"
cd "$__RootfsDir/tmp"
git clone -b hrev56235 https://review.haiku-os.org/haiku
git clone -b btrev43195 https://review.haiku-os.org/buildtools
cd "$__RootfsDir/tmp/buildtools" && git checkout 7487388f5110021d400b9f3b88e1a7f310dc066d
pushd "$__RootfsDir/tmp"
# Fetch some unmerged patches
cd "$__RootfsDir/tmp/haiku"
## Add development build profile (slimmer than nightly)
git fetch origin refs/changes/64/4164/1 && git -c commit.gpgsign=false cherry-pick FETCH_HEAD
mkdir "$__RootfsDir/tmp/download"
# Build jam
cd "$__RootfsDir/tmp/buildtools/jam"
make
echo "Downloading Haiku package tool"
git clone https://github.com/haiku/haiku-toolchains-ubuntu --depth 1 $__RootfsDir/tmp/script
wget -O "$__RootfsDir/tmp/download/hosttools.zip" $($__RootfsDir/tmp/script/fetch.sh --hosttools)
unzip -o "$__RootfsDir/tmp/download/hosttools.zip" -d "$__RootfsDir/tmp/bin"
# Configure cross tools
echo "Building cross-compiler"
mkdir -p "$__RootfsDir/generated"
cd "$__RootfsDir/generated"
"$__RootfsDir/tmp/haiku/configure" -j"$JOBS" --sysroot "$__RootfsDir" --cross-tools-source "$__RootfsDir/tmp/buildtools" --build-cross-tools x86_64
DepotBaseUrl="https://depot.haiku-os.org/__api/v2/pkg/get-pkg"
HpkgBaseUrl="https://eu.hpkg.haiku-os.org/haiku/master/$__HaikuArch/current"
# Build Haiku packages
echo "Building Haiku"
echo 'HAIKU_BUILD_PROFILE = "development-raw" ;' > UserProfileConfig
"$__RootfsDir/tmp/buildtools/jam/jam0" -j"$JOBS" -q '<build>package' '<repository>Haiku'
BaseUrl="https://depot.haiku-os.org/__api/v2/pkg/get-pkg"
# Download additional packages
echo "Downloading additional required packages"
# Download Haiku packages
echo "Downloading Haiku packages"
read -ra array <<<"$__HaikuPackages"
for package in "${array[@]}"; do
echo "Downloading $package..."
# API documented here: https://github.com/haiku/haikudepotserver/blob/master/haikudepotserver-api2/src/main/resources/api2/pkg.yaml#L60
# The schema here: https://github.com/haiku/haikudepotserver/blob/master/haikudepotserver-api2/src/main/resources/api2/pkg.yaml#L598
hpkgDownloadUrl="$(wget -qO- --post-data='{"name":"'"$package"'","repositorySourceCode":"haikuports_x86_64","versionType":"LATEST","naturalLanguageCode":"en"}' \
--header='Content-Type:application/json' "$BaseUrl" | jq -r '.result.versions[].hpkgDownloadURL')"
wget -P "$__RootfsDir/generated/download" "$hpkgDownloadUrl"
hpkgDownloadUrl="$(wget -qO- --post-data='{"name":"'"$package"'","repositorySourceCode":"haikuports_'$__HaikuArch'","versionType":"LATEST","naturalLanguageCode":"en"}' \
--header='Content-Type:application/json' "$DepotBaseUrl" | jq -r '.result.versions[].hpkgDownloadURL')"
wget -P "$__RootfsDir/tmp/download" "$hpkgDownloadUrl"
done
for package in haiku haiku_devel; do
echo "Downloading $package..."
hpkgVersion="$(wget -qO- $HpkgBaseUrl | sed -n 's/^.*version: "\([^"]*\)".*$/\1/p')"
wget -P "$__RootfsDir/tmp/download" "$HpkgBaseUrl/packages/$package-$hpkgVersion-1-$__HaikuArch.hpkg"
done
# Setup the sysroot
echo "Setting up sysroot and extracting needed packages"
# Set up the sysroot
echo "Setting up sysroot and extracting required packages"
mkdir -p "$__RootfsDir/boot/system"
for file in "$__RootfsDir/generated/objects/haiku/x86_64/packaging/packages/"*.hpkg; do
"$__RootfsDir/generated/objects/linux/x86_64/release/tools/package/package" extract -C "$__RootfsDir/boot/system" "$file"
done
for file in "$__RootfsDir/generated/download/"*.hpkg; do
"$__RootfsDir/generated/objects/linux/x86_64/release/tools/package/package" extract -C "$__RootfsDir/boot/system" "$file"
for file in "$__RootfsDir/tmp/download/"*.hpkg; do
echo "Extracting $file..."
LD_LIBRARY_PATH="$__RootfsDir/tmp/bin" "$__RootfsDir/tmp/bin/package" extract -C "$__RootfsDir/boot/system" "$file"
done
# Download buildtools
echo "Downloading Haiku buildtools"
wget -O "$__RootfsDir/tmp/download/buildtools.zip" $($__RootfsDir/tmp/script/fetch.sh --buildtools --arch=$__HaikuArch)
unzip -o "$__RootfsDir/tmp/download/buildtools.zip" -d "$__RootfsDir"
# Cleaning up temporary files
echo "Cleaning up temporary files"
popd
rm -rf "$__RootfsDir/tmp"
for name in "$__RootfsDir/generated/"*; do
if [[ "$name" =~ "cross-tools-" ]]; then
: # Keep the cross-compiler
else
rm -rf "$name"
fi
done
elif [[ -n "$__CodeName" ]]; then
if [[ "$__SkipSigCheck" == "0" ]]; then

43
eng/common/cross/toolchain.cmake сгенерированный поставляемый
Просмотреть файл

@ -6,6 +6,7 @@ unset(FREEBSD)
unset(ILLUMOS)
unset(ANDROID)
unset(TIZEN)
unset(HAIKU)
set(TARGET_ARCH_NAME $ENV{TARGET_BUILD_ARCH})
if(EXISTS ${CROSS_ROOTFS}/bin/freebsd-version)
@ -16,6 +17,7 @@ elseif(EXISTS ${CROSS_ROOTFS}/usr/platform/i86pc)
set(ILLUMOS 1)
elseif(EXISTS ${CROSS_ROOTFS}/boot/system/develop/headers/config/HaikuConfig.h)
set(CMAKE_SYSTEM_NAME Haiku)
set(HAIKU 1)
else()
set(CMAKE_SYSTEM_NAME Linux)
set(LINUX 1)
@ -67,13 +69,25 @@ elseif(TARGET_ARCH_NAME STREQUAL "armv6")
endif()
elseif(TARGET_ARCH_NAME STREQUAL "ppc64le")
set(CMAKE_SYSTEM_PROCESSOR ppc64le)
set(TOOLCHAIN "powerpc64le-linux-gnu")
if(EXISTS ${CROSS_ROOTFS}/usr/lib/gcc/powerpc64le-alpine-linux-musl)
set(TOOLCHAIN "powerpc64le-alpine-linux-musl")
else()
set(TOOLCHAIN "powerpc64le-linux-gnu")
endif()
elseif(TARGET_ARCH_NAME STREQUAL "riscv64")
set(CMAKE_SYSTEM_PROCESSOR riscv64)
set(TOOLCHAIN "riscv64-linux-gnu")
if(EXISTS ${CROSS_ROOTFS}/usr/lib/gcc/riscv64-alpine-linux-musl)
set(TOOLCHAIN "riscv64-alpine-linux-musl")
else()
set(TOOLCHAIN "riscv64-linux-gnu")
endif()
elseif(TARGET_ARCH_NAME STREQUAL "s390x")
set(CMAKE_SYSTEM_PROCESSOR s390x)
set(TOOLCHAIN "s390x-linux-gnu")
if(EXISTS ${CROSS_ROOTFS}/usr/lib/gcc/s390x-alpine-linux-musl)
set(TOOLCHAIN "s390x-alpine-linux-musl")
else()
set(TOOLCHAIN "s390x-linux-gnu")
endif()
elseif(TARGET_ARCH_NAME STREQUAL "x64")
set(CMAKE_SYSTEM_PROCESSOR x86_64)
if(EXISTS ${CROSS_ROOTFS}/usr/lib/gcc/x86_64-alpine-linux-musl)
@ -88,11 +102,15 @@ elseif(TARGET_ARCH_NAME STREQUAL "x64")
elseif(ILLUMOS)
set(TOOLCHAIN "x86_64-illumos")
elseif(HAIKU)
set(TOOLCHAIN "x64_64-unknown-haiku")
set(TOOLCHAIN "x86_64-unknown-haiku")
endif()
elseif(TARGET_ARCH_NAME STREQUAL "x86")
set(CMAKE_SYSTEM_PROCESSOR i686)
set(TOOLCHAIN "i686-linux-gnu")
if(EXISTS ${CROSS_ROOTFS}/usr/lib/gcc/i586-alpine-linux-musl)
set(TOOLCHAIN "i586-alpine-linux-musl")
else()
set(TOOLCHAIN "i686-linux-gnu")
endif()
if(TIZEN)
set(TIZEN_TOOLCHAIN "i586-tizen-linux-gnu/9.2.0")
endif()
@ -198,10 +216,8 @@ elseif(HAIKU)
return()
endif()
set(SEARCH_PATH "${CROSS_ROOTFS}/generated/cross-tools-x86_64/bin")
find_program(EXEC_LOCATION_${exec}
PATHS ${SEARCH_PATH}
PATHS "${CROSS_ROOTFS}/cross-tools-x86_64/bin"
NAMES
"${TOOLSET_PREFIX}${exec}${CLR_CMAKE_COMPILER_FILE_NAME_VERSION}"
"${TOOLSET_PREFIX}${exec}")
@ -266,8 +282,11 @@ elseif(TARGET_ARCH_NAME MATCHES "^(arm64|x64)$")
add_toolchain_linker_flag("-Wl,--rpath-link=${CROSS_ROOTFS}/usr/lib64/gcc/${TIZEN_TOOLCHAIN}")
endif()
elseif(TARGET_ARCH_NAME STREQUAL "x86")
if(EXISTS ${CROSS_ROOTFS}/usr/lib/gcc/i586-alpine-linux-musl)
add_toolchain_linker_flag("--target=${TOOLCHAIN}")
add_toolchain_linker_flag("-Wl,--rpath-link=${CROSS_ROOTFS}/usr/lib/gcc/${TOOLCHAIN}")
endif()
add_toolchain_linker_flag(-m32)
if(TIZEN)
add_toolchain_linker_flag("-B${CROSS_ROOTFS}/usr/lib/gcc/${TIZEN_TOOLCHAIN}")
add_toolchain_linker_flag("-L${CROSS_ROOTFS}/lib")
@ -277,6 +296,9 @@ elseif(TARGET_ARCH_NAME STREQUAL "x86")
elseif(ILLUMOS)
add_toolchain_linker_flag("-L${CROSS_ROOTFS}/lib/amd64")
add_toolchain_linker_flag("-L${CROSS_ROOTFS}/usr/amd64/lib")
elseif(HAIKU)
add_toolchain_linker_flag("-lnetwork")
add_toolchain_linker_flag("-lroot")
endif()
# Specify compile options
@ -307,6 +329,9 @@ if(TARGET_ARCH_NAME MATCHES "^(arm|armel)$")
add_compile_options(-mfloat-abi=softfp)
endif()
elseif(TARGET_ARCH_NAME STREQUAL "x86")
if(EXISTS ${CROSS_ROOTFS}/usr/lib/gcc/i586-alpine-linux-musl)
add_compile_options(--target=${TOOLCHAIN})
endif()
add_compile_options(-m32)
add_compile_options(-Wno-error=unused-command-line-argument)
endif()

11
eng/common/cross/x64/sources.list.bionic сгенерированный поставляемый Normal file
Просмотреть файл

@ -0,0 +1,11 @@
deb http://archive.ubuntu.com/ubuntu/ bionic main restricted universe
deb-src http://archive.ubuntu.com/ubuntu/ bionic main restricted universe
deb http://archive.ubuntu.com/ubuntu/ bionic-updates main restricted universe
deb-src http://archive.ubuntu.com/ubuntu/ bionic-updates main restricted universe
deb http://archive.ubuntu.com/ubuntu/ bionic-backports main restricted
deb-src http://archive.ubuntu.com/ubuntu/ bionic-backports main restricted
deb http://archive.ubuntu.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ bionic-security main restricted universe multiverse

4
eng/common/dotnet-install.sh сгенерированный поставляемый
Просмотреть файл

@ -54,6 +54,10 @@ cpuname=$(uname -m)
case $cpuname in
arm64|aarch64)
buildarch=arm64
if [ "$(getconf LONG_BIT)" -lt 64 ]; then
# This is 32-bit OS running on 64-bit CPU (for example Raspberry Pi OS)
buildarch=arm
fi
;;
loongarch64)
buildarch=loongarch64

Двоичные данные
eng/common/loc/P22DotNetHtmlLocalization.lss сгенерированный поставляемый

Двоичный файл не отображается.

2
eng/common/native/init-compiler.sh сгенерированный поставляемый
Просмотреть файл

@ -64,7 +64,7 @@ if [ -z "$CLR_CC" ]; then
if [ -z "$majorVersion" ]; then
# note: gcc (all versions) and clang versions higher than 6 do not have minor version in file name, if it is zero.
if [ "$compiler" = "clang" ]; then versions="16 15 14 13 12 11 10 9 8 7 6.0 5.0 4.0 3.9 3.8 3.7 3.6 3.5"
elif [ "$compiler" = "gcc" ]; then versions="12 11 10 9 8 7 6 5 4.9"; fi
elif [ "$compiler" = "gcc" ]; then versions="13 12 11 10 9 8 7 6 5 4.9"; fi
for version in $versions; do
_major="${version%%.*}"

2
eng/common/sdk-task.ps1 сгенерированный поставляемый
Просмотреть файл

@ -64,7 +64,7 @@ try {
$GlobalJson.tools | Add-Member -Name "vs" -Value (ConvertFrom-Json "{ `"version`": `"16.5`" }") -MemberType NoteProperty
}
if( -not ($GlobalJson.tools.PSObject.Properties.Name -match "xcopy-msbuild" )) {
$GlobalJson.tools | Add-Member -Name "xcopy-msbuild" -Value "17.4.1" -MemberType NoteProperty
$GlobalJson.tools | Add-Member -Name "xcopy-msbuild" -Value "17.6.0-2" -MemberType NoteProperty
}
if ($GlobalJson.tools."xcopy-msbuild".Trim() -ine "none") {
$xcopyMSBuildToolsFolder = InitializeXCopyMSBuild $GlobalJson.tools."xcopy-msbuild" -install $true

40
eng/common/sdl/configure-sdl-tool.ps1 сгенерированный поставляемый
Просмотреть файл

@ -17,7 +17,9 @@ Param(
# Optional: Additional params to add to any tool using PoliCheck.
[string[]] $PoliCheckAdditionalRunConfigParams,
# Optional: Additional params to add to any tool using CodeQL/Semmle.
[string[]] $CodeQLAdditionalRunConfigParams
[string[]] $CodeQLAdditionalRunConfigParams,
# Optional: Additional params to add to any tool using Binskim.
[string[]] $BinskimAdditionalRunConfigParams
)
$ErrorActionPreference = 'Stop'
@ -69,22 +71,32 @@ try {
$gdnConfigFile = Join-Path $gdnConfigPath "$toolConfigName-configure.gdnconfig"
# For some tools, add default and automatic args.
if ($tool.Name -eq 'credscan') {
if ($targetDirectory) {
$tool.Args += "`"TargetDirectory < $TargetDirectory`""
switch -Exact ($tool.Name) {
'credscan' {
if ($targetDirectory) {
$tool.Args += "`"TargetDirectory < $TargetDirectory`""
}
$tool.Args += "`"OutputType < pre`""
$tool.Args += $CrScanAdditionalRunConfigParams
}
$tool.Args += "`"OutputType < pre`""
$tool.Args += $CrScanAdditionalRunConfigParams
} elseif ($tool.Name -eq 'policheck') {
if ($targetDirectory) {
$tool.Args += "`"Target < $TargetDirectory`""
'policheck' {
if ($targetDirectory) {
$tool.Args += "`"Target < $TargetDirectory`""
}
$tool.Args += $PoliCheckAdditionalRunConfigParams
}
$tool.Args += $PoliCheckAdditionalRunConfigParams
} elseif ($tool.Name -eq 'semmle' -or $tool.Name -eq 'codeql') {
if ($targetDirectory) {
$tool.Args += "`"SourceCodeDirectory < $TargetDirectory`""
{$_ -in 'semmle', 'codeql'} {
if ($targetDirectory) {
$tool.Args += "`"SourceCodeDirectory < $TargetDirectory`""
}
$tool.Args += $CodeQLAdditionalRunConfigParams
}
'binskim' {
if ($targetDirectory) {
$tool.Args += "`"Target < $TargetDirectory\**`""
}
$tool.Args += $BinskimAdditionalRunConfigParams
}
$tool.Args += $CodeQLAdditionalRunConfigParams
}
# Create variable pointing to the args array directly so we can use splat syntax later.

4
eng/common/sdl/execute-all-sdl-tools.ps1 сгенерированный поставляемый
Просмотреть файл

@ -35,6 +35,7 @@ Param(
[string[]] $CrScanAdditionalRunConfigParams, # Optional: Additional Params to custom build a CredScan run config in the format @("xyz:abc","sdf:1")
[string[]] $PoliCheckAdditionalRunConfigParams, # Optional: Additional Params to custom build a Policheck run config in the format @("xyz:abc","sdf:1")
[string[]] $CodeQLAdditionalRunConfigParams, # Optional: Additional Params to custom build a Semmle/CodeQL run config in the format @("xyz < abc","sdf < 1")
[string[]] $BinskimAdditionalRunConfigParams, # Optional: Additional Params to custom build a Binskim run config in the format @("xyz < abc","sdf < 1")
[bool] $BreakOnFailure=$False # Optional: Fail the build if there were errors during the run
)
@ -107,7 +108,8 @@ try {
-GuardianLoggerLevel $GuardianLoggerLevel `
-CrScanAdditionalRunConfigParams $CrScanAdditionalRunConfigParams `
-PoliCheckAdditionalRunConfigParams $PoliCheckAdditionalRunConfigParams `
-CodeQLAdditionalRunConfigParams $CodeQLAdditionalRunConfigParams
-CodeQLAdditionalRunConfigParams $CodeQLAdditionalRunConfigParams `
-BinskimAdditionalRunConfigParams $BinskimAdditionalRunConfigParams
if ($BreakOnFailure) {
Exit-IfNZEC "Sdl"
}

17
eng/common/templates/job/job.yml сгенерированный поставляемый
Просмотреть файл

@ -25,7 +25,7 @@ parameters:
enablePublishTestResults: false
enablePublishUsingPipelines: false
enableBuildRetry: false
disableComponentGovernance: false
disableComponentGovernance: ''
componentGovernanceIgnoreDirectories: ''
mergeTestResults: false
testRunTitle: ''
@ -159,11 +159,16 @@ jobs:
uploadRichNavArtifacts: ${{ coalesce(parameters.richCodeNavigationUploadArtifacts, false) }}
continueOnError: true
- ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest'), ne(parameters.disableComponentGovernance, 'true')) }}:
- task: ComponentGovernanceComponentDetection@0
continueOnError: true
inputs:
ignoreDirectories: ${{ parameters.componentGovernanceIgnoreDirectories }}
- template: /eng/common/templates/steps/component-governance.yml
parameters:
${{ if eq(parameters.disableComponentGovernance, '') }}:
${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest'), eq(parameters.runAsPublic, 'false'), or(startsWith(variables['Build.SourceBranch'], 'refs/heads/release/'), startsWith(variables['Build.SourceBranch'], 'refs/heads/dotnet/'), startsWith(variables['Build.SourceBranch'], 'refs/heads/microsoft/'), eq(variables['Build.SourceBranch'], 'refs/heads/main'))) }}:
disableComponentGovernance: false
${{ else }}:
disableComponentGovernance: true
${{ else }}:
disableComponentGovernance: ${{ parameters.disableComponentGovernance }}
componentGovernanceIgnoreDirectories: ${{ parameters.componentGovernanceIgnoreDirectories }}
- ${{ if eq(parameters.enableMicrobuild, 'true') }}:
- ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:

5
eng/common/templates/steps/component-governance.yml сгенерированный поставляемый
Просмотреть файл

@ -1,5 +1,6 @@
parameters:
disableComponentGovernance: false
componentGovernanceIgnoreDirectories: ''
steps:
- ${{ if eq(parameters.disableComponentGovernance, 'true') }}:
@ -7,4 +8,6 @@ steps:
displayName: Set skipComponentGovernanceDetection variable
- ${{ if ne(parameters.disableComponentGovernance, 'true') }}:
- task: ComponentGovernanceComponentDetection@0
continueOnError: true
continueOnError: true
inputs:
ignoreDirectories: ${{ parameters.componentGovernanceIgnoreDirectories }}

2
eng/common/templates/steps/execute-sdl.yml сгенерированный поставляемый
Просмотреть файл

@ -33,7 +33,7 @@ steps:
- ${{ if ne(parameters.overrideParameters, '') }}:
- powershell: ${{ parameters.executeAllSdlToolsScript }} ${{ parameters.overrideParameters }}
displayName: Execute SDL
displayName: Execute SDL (Overridden)
continueOnError: ${{ parameters.sdlContinueOnError }}
condition: ${{ parameters.condition }}

6
eng/common/templates/steps/source-build.yml сгенерированный поставляемый
Просмотреть файл

@ -68,6 +68,11 @@ steps:
runtimeOsArgs='/p:RuntimeOS=${{ parameters.platform.runtimeOS }}'
fi
baseOsArgs=
if [ '${{ parameters.platform.baseOS }}' != '' ]; then
baseOsArgs='/p:BaseOS=${{ parameters.platform.baseOS }}'
fi
publishArgs=
if [ '${{ parameters.platform.skipPublishValidation }}' != 'true' ]; then
publishArgs='--publish'
@ -86,6 +91,7 @@ steps:
$internalRestoreArgs \
$targetRidArgs \
$runtimeOsArgs \
$baseOsArgs \
/p:SourceBuildNonPortable=${{ parameters.platform.nonPortable }} \
/p:ArcadeBuildFromSource=true \
/p:AssetManifestFileName=$assetManifestFileName

38
eng/common/tools.ps1 сгенерированный поставляемый
Просмотреть файл

@ -287,6 +287,25 @@ function InstallDotNet([string] $dotnetRoot,
[string] $runtimeSourceFeedKey = '',
[switch] $noPath) {
$dotnetVersionLabel = "'sdk v$version'"
if ($runtime -ne '' -and $runtime -ne 'sdk') {
$runtimePath = $dotnetRoot
$runtimePath = $runtimePath + "\shared"
if ($runtime -eq "dotnet") { $runtimePath = $runtimePath + "\Microsoft.NETCore.App" }
if ($runtime -eq "aspnetcore") { $runtimePath = $runtimePath + "\Microsoft.AspNetCore.App" }
if ($runtime -eq "windowsdesktop") { $runtimePath = $runtimePath + "\Microsoft.WindowsDesktop.App" }
$runtimePath = $runtimePath + "\" + $version
$dotnetVersionLabel = "runtime toolset '$runtime/$architecture v$version'"
if (Test-Path $runtimePath) {
Write-Host " Runtime toolset '$runtime/$architecture v$version' already installed."
$installSuccess = $true
Exit
}
}
$installScript = GetDotNetInstallScript $dotnetRoot
$installParameters = @{
Version = $version
@ -323,18 +342,18 @@ function InstallDotNet([string] $dotnetRoot,
} else {
$location = "public location";
}
Write-Host "Attempting to install dotnet from $location."
Write-Host " Attempting to install $dotnetVersionLabel from $location."
try {
& $installScript @variation
$installSuccess = $true
break
}
catch {
Write-Host "Failed to install dotnet from $location."
Write-Host " Failed to install $dotnetVersionLabel from $location."
}
}
if (-not $installSuccess) {
Write-PipelineTelemetryError -Category 'InitializeToolset' -Message "Failed to install dotnet from any of the specified locations."
Write-PipelineTelemetryError -Category 'InitializeToolset' -Message "Failed to install $dotnetVersionLabel from any of the specified locations."
ExitWithExitCode 1
}
}
@ -360,13 +379,13 @@ function InitializeVisualStudioMSBuild([bool]$install, [object]$vsRequirements =
}
# Minimum VS version to require.
$vsMinVersionReqdStr = '16.8'
$vsMinVersionReqdStr = '17.6'
$vsMinVersionReqd = [Version]::new($vsMinVersionReqdStr)
# If the version of msbuild is going to be xcopied,
# use this version. Version matches a package here:
# https://dev.azure.com/dnceng/public/_packaging?_a=package&feed=dotnet-eng&package=RoslynTools.MSBuild&protocolType=NuGet&version=17.4.1&view=overview
$defaultXCopyMSBuildVersion = '17.4.1'
# https://dev.azure.com/dnceng/public/_artifacts/feed/dotnet-eng/NuGet/RoslynTools.MSBuild/versions/17.6.0-2
$defaultXCopyMSBuildVersion = '17.6.0-2'
if (!$vsRequirements) {
if (Get-Member -InputObject $GlobalJson.tools -Name 'vs') {
@ -399,7 +418,8 @@ function InitializeVisualStudioMSBuild([bool]$install, [object]$vsRequirements =
# Locate Visual Studio installation or download x-copy msbuild.
$vsInfo = LocateVisualStudio $vsRequirements
if ($vsInfo -ne $null) {
$vsInstallDir = $vsInfo.installationPath
# Ensure vsInstallDir has a trailing slash
$vsInstallDir = Join-Path $vsInfo.installationPath "\"
$vsMajorVersion = $vsInfo.installationVersion.Split('.')[0]
InitializeVisualStudioEnvironmentVariables $vsInstallDir $vsMajorVersion
@ -743,8 +763,8 @@ function MSBuild() {
(Join-Path $basePath (Join-Path netcoreapp2.1 'Microsoft.DotNet.Arcade.Sdk.dll'))
(Join-Path $basePath (Join-Path netcoreapp3.1 'Microsoft.DotNet.ArcadeLogging.dll')),
(Join-Path $basePath (Join-Path netcoreapp3.1 'Microsoft.DotNet.Arcade.Sdk.dll'))
(Join-Path $basePath (Join-Path net8.0 'Microsoft.DotNet.ArcadeLogging.dll')),
(Join-Path $basePath (Join-Path net8.0 'Microsoft.DotNet.Arcade.Sdk.dll'))
(Join-Path $basePath (Join-Path net7.0 'Microsoft.DotNet.ArcadeLogging.dll')),
(Join-Path $basePath (Join-Path net7.0 'Microsoft.DotNet.Arcade.Sdk.dll'))
)
$selectedPath = $null
foreach ($path in $possiblePaths) {

39
eng/common/tools.sh сгенерированный поставляемый
Просмотреть файл

@ -184,6 +184,35 @@ function InstallDotNetSdk {
function InstallDotNet {
local root=$1
local version=$2
local runtime=$4
local dotnetVersionLabel="'$runtime v$version'"
if [[ -n "${4:-}" ]] && [ "$4" != 'sdk' ]; then
runtimePath="$root"
runtimePath="$runtimePath/shared"
case "$runtime" in
dotnet)
runtimePath="$runtimePath/Microsoft.NETCore.App"
;;
aspnetcore)
runtimePath="$runtimePath/Microsoft.AspNetCore.App"
;;
windowsdesktop)
runtimePath="$runtimePath/Microsoft.WindowsDesktop.App"
;;
*)
;;
esac
runtimePath="$runtimePath/$version"
dotnetVersionLabel="runtime toolset '$runtime/$architecture v$version'"
if [ -d "$runtimePath" ]; then
echo " Runtime toolset '$runtime/$architecture v$version' already installed."
local installSuccess=1
return
fi
fi
GetDotNetInstallScript "$root"
local install_script=$_GetDotNetInstallScript
@ -228,17 +257,17 @@ function InstallDotNet {
for variationName in "${variations[@]}"; do
local name="$variationName[@]"
local variation=("${!name}")
echo "Attempting to install dotnet from $variationName."
echo " Attempting to install $dotnetVersionLabel from $variationName."
bash "$install_script" "${variation[@]}" && installSuccess=1
if [[ "$installSuccess" -eq 1 ]]; then
break
fi
echo "Failed to install dotnet from $variationName."
echo " Failed to install $dotnetVersionLabel from $variationName."
done
if [[ "$installSuccess" -eq 0 ]]; then
Write-PipelineTelemetryError -category 'InitializeToolset' "Failed to install dotnet SDK from any of the specified locations."
Write-PipelineTelemetryError -category 'InitializeToolset' "Failed to install $dotnetVersionLabel from any of the specified locations."
ExitWithExitCode 1
fi
}
@ -428,8 +457,8 @@ function MSBuild {
possiblePaths+=( "$toolset_dir/netcoreapp2.1/Microsoft.DotNet.Arcade.Sdk.dll" )
possiblePaths+=( "$toolset_dir/netcoreapp3.1/Microsoft.DotNet.ArcadeLogging.dll" )
possiblePaths+=( "$toolset_dir/netcoreapp3.1/Microsoft.DotNet.Arcade.Sdk.dll" )
possiblePaths+=( "$toolset_dir/net8.0/Microsoft.DotNet.ArcadeLogging.dll" )
possiblePaths+=( "$toolset_dir/net8.0/Microsoft.DotNet.Arcade.Sdk.dll" )
possiblePaths+=( "$toolset_dir/net7.0/Microsoft.DotNet.ArcadeLogging.dll" )
possiblePaths+=( "$toolset_dir/net7.0/Microsoft.DotNet.Arcade.Sdk.dll" )
for path in "${possiblePaths[@]}"; do
if [[ -f $path ]]; then
selectedPath=$path

Просмотреть файл

@ -3,13 +3,13 @@
"allowPrerelease": true
},
"tools": {
"dotnet": "8.0.100-preview.3.23178.7",
"dotnet": "8.0.100-preview.6.23330.14",
"vs": {
"version": "17.4.1"
},
"xcopy-msbuild": "17.4.1"
},
"msbuild-sdks": {
"Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.23213.1"
"Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.23364.2"
}
}

Просмотреть файл

@ -34,14 +34,14 @@ namespace Microsoft.Build.UnitTests.OM.ObjectModelRemoting
public void VerifyNotSame(LinkPair<T> other)
{
Assert.NotSame((object)this.View, (object)other.View);
Assert.NotSame((object)this.Real, (object)other.Real);
Assert.NotEqual((object)this.View, (object)other.View);
Assert.NotEqual((object)this.Real, (object)other.Real);
}
public void VerifySame(LinkPair<T> other)
{
Assert.Same((object)this.View, (object)other.View);
Assert.Same((object)this.Real, (object)other.Real);
Assert.Equal((object)this.View, (object)other.View);
Assert.Equal((object)this.Real, (object)other.Real);
}
public void VerifySetter(bool finalValue, Func<T, bool> getter, Action<T, bool> setter)

Просмотреть файл

@ -51,6 +51,9 @@ namespace Microsoft.Build.BackEnd
/// <summary>
/// Constructor for deserialization.
/// </summary>
#if NET8_0_OR_GREATER
[Obsolete(DiagnosticId = "SYSLIB0051")]
#endif
protected NodeFailedToLaunchException(SerializationInfo info, StreamingContext context)
: base(info, context)
{
@ -82,6 +85,9 @@ namespace Microsoft.Build.BackEnd
/// </summary>
#if FEATURE_SECURITY_PERMISSIONS
[SecurityPermissionAttribute(SecurityAction.Demand, SerializationFormatter = true)]
#endif
#if NET8_0_OR_GREATER
[Obsolete(DiagnosticId = "SYSLIB0051")]
#endif
public override void GetObjectData(SerializationInfo info, StreamingContext context)
{

Просмотреть файл

@ -1079,7 +1079,9 @@ namespace Microsoft.Build.BackEnd
/// </summary>
internal bool IsEventSerializable(BuildEventArgs e)
{
#pragma warning disable SYSLIB0050
if (!e.GetType().GetTypeInfo().IsSerializable)
#pragma warning restore SYSLIB0050
{
_taskLoggingContext.LogWarning(null, new BuildEventFileInfo(string.Empty), "ExpectedEventToBeSerializable", e.GetType().Name);
return false;

Просмотреть файл

@ -91,6 +91,9 @@ namespace Microsoft.Build.Exceptions
/// Protected constructor used for (de)serialization.
/// If we ever add new members to this class, we'll need to update this.
/// </summary>
#if NET8_0_OR_GREATER
[Obsolete(DiagnosticId = "SYSLIB0051")]
#endif
protected BuildAbortedException(SerializationInfo info, StreamingContext context)
: base(info, context)
{
@ -109,6 +112,9 @@ namespace Microsoft.Build.Exceptions
/// </summary>
#if FEATURE_SECURITY_PERMISSIONS
[SecurityPermissionAttribute(SecurityAction.Demand, SerializationFormatter = true)]
#endif
#if NET8_0_OR_GREATER
[Obsolete(DiagnosticId = "SYSLIB0051")]
#endif
public override void GetObjectData(SerializationInfo info, StreamingContext context)
{

Просмотреть файл

@ -39,6 +39,9 @@ namespace Microsoft.Build.Exceptions
/// <summary>
/// Constructor for deserialization.
/// </summary>
#if NET8_0_OR_GREATER
[Obsolete(DiagnosticId = "SYSLIB0051")]
#endif
protected CircularDependencyException(SerializationInfo info, StreamingContext context)
: base(info, context)
{

Просмотреть файл

@ -108,6 +108,9 @@ namespace Microsoft.Build.Exceptions
/// </summary>
/// <param name="info"></param>
/// <param name="context"></param>
#if NET8_0_OR_GREATER
[Obsolete(DiagnosticId = "SYSLIB0051")]
#endif
private InternalLoggerException(SerializationInfo info, StreamingContext context)
: base(info, context)
{
@ -125,6 +128,9 @@ namespace Microsoft.Build.Exceptions
/// <param name="context"></param>
#if FEATURE_SECURITY_PERMISSIONS
[SecurityPermissionAttribute(SecurityAction.Demand, SerializationFormatter = true)]
#endif
#if NET8_0_OR_GREATER
[Obsolete(DiagnosticId = "SYSLIB0051")]
#endif
public override void GetObjectData(SerializationInfo info, StreamingContext context)
{

Просмотреть файл

@ -85,6 +85,9 @@ namespace Microsoft.Build.Exceptions
/// </summary>
/// <param name="info"></param>
/// <param name="context"></param>
#if NET8_0_OR_GREATER
[Obsolete(DiagnosticId = "SYSLIB0051")]
#endif
private InvalidProjectFileException(SerializationInfo info, StreamingContext context)
: base(info, context)
{
@ -107,6 +110,9 @@ namespace Microsoft.Build.Exceptions
/// <param name="context"></param>
#if FEATURE_SECURITY_PERMISSIONS
[SecurityPermissionAttribute(SecurityAction.Demand, SerializationFormatter = true)]
#endif
#if NET8_0_OR_GREATER
[Obsolete(DiagnosticId = "SYSLIB0051")]
#endif
public override void GetObjectData(SerializationInfo info, StreamingContext context)
{

Просмотреть файл

@ -55,6 +55,9 @@ namespace Microsoft.Build.Exceptions
/// <summary>
/// Basic constructor.
/// </summary>
#if NET8_0_OR_GREATER
[Obsolete(DiagnosticId = "SYSLIB0051")]
#endif
protected InvalidToolsetDefinitionException(SerializationInfo info, StreamingContext context)
: base(info, context)
{
@ -94,6 +97,9 @@ namespace Microsoft.Build.Exceptions
/// <param name="context"></param>
#if FEATURE_SECURITY_PERMISSIONS
[SecurityPermissionAttribute(SecurityAction.Demand, SerializationFormatter = true)]
#endif
#if NET8_0_OR_GREATER
[Obsolete(DiagnosticId = "SYSLIB0051")]
#endif
public override void GetObjectData(SerializationInfo info, StreamingContext context)
{

Просмотреть файл

@ -57,6 +57,9 @@ namespace Microsoft.Build.Exceptions
/// <summary>
/// Since this class implements Iserializable this constructor is required to be implemented.
/// </summary>
#if NET8_0_OR_GREATER
[Obsolete(DiagnosticId = "SYSLIB0051")]
#endif
protected RegistryException(SerializationInfo info, StreamingContext context) : base(info, context)
{
// We don't have any reason at the moment to do any custom serizlization or deserialization, this methods was added

Просмотреть файл

@ -337,7 +337,9 @@ namespace Microsoft.Build.BackEnd
/// </summary>
internal bool IsEventSerializable(BuildEventArgs e)
{
#pragma warning disable SYSLIB0050
if (!e.GetType().GetTypeInfo().IsSerializable)
#pragma warning restore SYSLIB0050
{
_loggingContext.LogWarning(null, new BuildEventFileInfo(string.Empty), "ExpectedEventToBeSerializable", e.GetType().Name);
return false;

Просмотреть файл

@ -33,7 +33,6 @@
<PackageReference Include="System.Collections.Immutable" />
<PackageReference Include="System.Configuration.ConfigurationManager" />
<PackageReference Include="System.Threading.Tasks.Dataflow" />
<PackageReference Include="System.Text.Json" />
<PackageReference Include="System.Reflection.Metadata" Condition="'$(MonoBuild)' == 'true'" />
<PackageReference Include="System.Reflection.MetadataLoadContext" />
@ -47,6 +46,7 @@
<ItemGroup Condition="'$(TargetFrameworkIdentifier)' == '.NETFramework'">
<Reference Include="System.IO.Compression" />
<PackageReference Include="System.Memory" />
<PackageReference Include="System.Text.Json" />
</ItemGroup>
<ItemGroup Condition="'$(TargetFrameworkIdentifier)' == '.NETStandard'">

Просмотреть файл

@ -49,12 +49,6 @@
</PropertyGroup>
<ItemGroup Condition="'$(IsUnitTestProject)' == 'true'">
<!-- MSBuild isn't xunit analyzer clean, so remove the reference to the xunit package added by the repo toolset and
replace it with references to xunit.core and xunit.assert. -->
<PackageReference Remove="xunit" />
<PackageReference Include="xunit.core" />
<PackageReference Include="xunit.assert" />
<!-- Force updated reference to this package because xunit and shouldly
are netstandard1.6 and transitively bring in an old reference -->
<PackageReference Include="System.Security.Cryptography.X509Certificates" />

Просмотреть файл

@ -31,6 +31,9 @@ public abstract class BuildExceptionBase : Exception
{ }
// This is needed to allow opting back in to BinaryFormatter serialization
#if NET8_0_OR_GREATER
[Obsolete(DiagnosticId = "SYSLIB0051")]
#endif
private protected BuildExceptionBase(SerializationInfo info, StreamingContext context)
: base(info, context)
{ }

Просмотреть файл

@ -75,6 +75,9 @@ namespace Microsoft.Build.Framework
/// Private constructor used for (de)serialization. The constructor is private as this class is sealed
/// If we ever add new members to this class, we'll need to update this.
/// </summary>
#if NET8_0_OR_GREATER
[Obsolete(DiagnosticId = "SYSLIB0051")]
#endif
private InternalErrorException(SerializationInfo info, StreamingContext context)
: base(info, context)
{

Просмотреть файл

@ -82,6 +82,9 @@ namespace Microsoft.Build.Framework
/// </summary>
/// <param name="info">Serialization info</param>
/// <param name="context">Streaming context</param>
#if NET8_0_OR_GREATER
[Obsolete(DiagnosticId = "SYSLIB0051")]
#endif
protected LoggerException(SerializationInfo info, StreamingContext context)
: base(info, context)
{
@ -97,6 +100,9 @@ namespace Microsoft.Build.Framework
/// <param name="context">Streaming context</param>
#if FEATURE_SECURITY_PERMISSIONS
[SecurityPermissionAttribute(SecurityAction.Demand, SerializationFormatter = true)]
#endif
#if NET8_0_OR_GREATER
[Obsolete(DiagnosticId = "SYSLIB0051")]
#endif
public override void GetObjectData(SerializationInfo info, StreamingContext context)
{
@ -121,7 +127,7 @@ namespace Microsoft.Build.Framework
helpKeyword = state[nameof(helpKeyword)];
}
#endregion
#endregion
#region Properties

Просмотреть файл

@ -46,6 +46,9 @@ namespace Microsoft.Build.CommandLine
/// <summary>
/// Serialization constructor
/// </summary>
#if NET8_0_OR_GREATER
[Obsolete(DiagnosticId = "SYSLIB0051")]
#endif
private CommandLineSwitchException(
SerializationInfo info,
StreamingContext context) :
@ -94,6 +97,9 @@ namespace Microsoft.Build.CommandLine
/// </summary>
#if FEATURE_SECURITY_PERMISSIONS
[SecurityPermissionAttribute(SecurityAction.Demand, SerializationFormatter = true)]
#endif
#if NET8_0_OR_GREATER
[Obsolete(DiagnosticId = "SYSLIB0051")]
#endif
public override void GetObjectData(SerializationInfo info, StreamingContext context)
{

Просмотреть файл

@ -51,6 +51,9 @@ namespace Microsoft.Build.CommandLine
/// <summary>
/// Serialization constructor
/// </summary>
#if NET8_0_OR_GREATER
[Obsolete(DiagnosticId = "SYSLIB0051")]
#endif
private InitializationException(
SerializationInfo info,
StreamingContext context) :
@ -87,6 +90,9 @@ namespace Microsoft.Build.CommandLine
/// </summary>
#if FEATURE_SECURITY_PERMISSIONS
[SecurityPermissionAttribute(SecurityAction.Demand, SerializationFormatter = true)]
#endif
#if NET8_0_OR_GREATER
[Obsolete(DiagnosticId = "SYSLIB0051")]
#endif
public override void GetObjectData(SerializationInfo info, StreamingContext context)
{

Просмотреть файл

@ -1146,7 +1146,9 @@ namespace Microsoft.Build.CommandLine
{
if (_nodeEndpoint?.LinkStatus == LinkStatus.Active)
{
#pragma warning disable SYSLIB0050
if (!e.GetType().GetTypeInfo().IsSerializable)
#pragma warning disable SYSLIB0050
{
// log a warning and bail. This will end up re-calling SendBuildEvent, but we know for a fact
// that the warning that we constructed is serializable, so everything should be good.

Просмотреть файл

@ -18,8 +18,6 @@
<ItemGroup>
<PackageReference Include="Shouldly" />
<PackageReference Include="xunit.core" />
<PackageReference Include="xunit.assert" />
</ItemGroup>
<ItemGroup>

Просмотреть файл

@ -66,6 +66,9 @@ namespace Microsoft.Build.Tasks
/// <summary>
/// Construct the exception.
/// </summary>
#if NET8_0_OR_GREATER
[Obsolete(DiagnosticId = "SYSLIB0051")]
#endif
protected AppConfigException(SerializationInfo info, StreamingContext context) : base(info, context)
{
}

Просмотреть файл

@ -25,6 +25,9 @@ namespace Microsoft.Build.Tasks
/// <summary>
/// Construct
/// </summary>
#if NET8_0_OR_GREATER
[Obsolete(DiagnosticId = "SYSLIB0051")]
#endif
private BadImageReferenceException(SerializationInfo info, StreamingContext context)
: base(info, context)
{

Просмотреть файл

@ -25,6 +25,9 @@ namespace Microsoft.Build.Tasks
/// <summary>
/// Construct
/// </summary>
#if NET8_0_OR_GREATER
[Obsolete(DiagnosticId = "SYSLIB0051")]
#endif
private DependencyResolutionException(SerializationInfo info, StreamingContext context)
: base(info, context)
{

Просмотреть файл

@ -26,6 +26,9 @@ namespace Microsoft.Build.Tasks
/// <summary>
/// Construct
/// </summary>
#if NET8_0_OR_GREATER
[Obsolete(DiagnosticId = "SYSLIB0051")]
#endif
private InvalidReferenceAssemblyNameException(SerializationInfo info, StreamingContext context) : base(info, context)
{
}

Просмотреть файл

@ -25,6 +25,9 @@ namespace Microsoft.Build.Tasks
/// <summary>
/// Implement required constructors for serialization
/// </summary>
#if NET8_0_OR_GREATER
[Obsolete(DiagnosticId = "SYSLIB0051")]
#endif
private ReferenceResolutionException(SerializationInfo info, StreamingContext context) : base(info, context)
{
}

Просмотреть файл

@ -2,7 +2,7 @@
<!-- https://learn.microsoft.com/en-us/dotnet/fundamentals/package-validation/diagnostic-ids -->
<Suppressions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Suppression>
<!-- For ease of logging the "not supported on Core" message, this task is a
<!-- For ease of logging the "not supported on Core" message, this task is a
TaskExtension on netstandard/netcore. Since the type is sealed there,
that shouldn't cause any implementation problems since no one can derive
from it and try to call TaskExtension.Log. -->
@ -12,6 +12,15 @@
<Right>ref/net472/Microsoft.Build.Tasks.Core.dll</Right>
</Suppression>
<!-- We don't have the net7 reference assemblies handy to pass in to compare against the net8 ones -->
<Suppression>
<DiagnosticId>CP1002</DiagnosticId>
<Target>System.Security.Cryptography, Version=7.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</Target>
<Left>ref/net7.0/Microsoft.Build.Tasks.Core.dll</Left>
<Right>ref/netstandard2.0/Microsoft.Build.Tasks.Core.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
</Suppression>
<!-- PKV004 for netstandard2.0-supporting TFs that we do not have runtime assemblies for.
This is intentional, because you can only use MSBuild in the context of a .NET SDK
(on net7.0, as of MSBuild 17.4) or in the context of Visual Studio (net472), but we
@ -65,7 +74,7 @@
<DiagnosticId>PKV004</DiagnosticId>
<Target>Xamarin.XboxOne,Version=v0.0</Target>
</Suppression>
<!-- For updating target framework from net 7.0 to net 8.0 in MSBuild 17.8 suppress baseline package validation error PKV006 on net 7.0 -->
<!-- For updating target framework from net 7.0 to net 8.0 in MSBuild 17.8 suppress baseline package validation error PKV006 on net 7.0 -->
<Suppression>
<DiagnosticId>PKV006</DiagnosticId>
<Target>net7.0</Target>

Просмотреть файл

@ -3942,6 +3942,9 @@ namespace Microsoft.Build.Tasks
private int lineNumber;
private int column;
#if NET8_0_OR_GREATER
[Obsolete(DiagnosticId = "SYSLIB0051")]
#endif
private TextFileException(SerializationInfo info, StreamingContext context)
: base(info, context)
{

Просмотреть файл

@ -38,6 +38,9 @@ namespace Microsoft.Build.Tasks
/// <summary>
/// Constructor
/// </summary>
#if NET8_0_OR_GREATER
[Obsolete(DiagnosticId = "SYSLIB0051")]
#endif
private InvalidParameterValueException(SerializationInfo info, StreamingContext context)
: base(info, context)
{

Просмотреть файл

@ -23,6 +23,9 @@ namespace Microsoft.Build.Tasks.ResourceHandling
{
}
#if NET8_0_OR_GREATER
[Obsolete(DiagnosticId = "SYSLIB0051")]
#endif
protected InputFormatNotSupportedException(SerializationInfo info, StreamingContext context) : base(info, context)
{
}

Просмотреть файл

@ -23,6 +23,9 @@ namespace Microsoft.Build.Tasks.ResourceHandling
{
}
#if NET8_0_OR_GREATER
[Obsolete(DiagnosticId = "SYSLIB0051")]
#endif
protected MSBuildResXException(SerializationInfo info, StreamingContext context) : base(info, context)
{
}

Просмотреть файл

@ -13,6 +13,9 @@ namespace Microsoft.Build.Tasks.ResourceHandling
{
public PreserializedResourceWriterRequiredException() { }
#if NET8_0_OR_GREATER
[Obsolete(DiagnosticId = "SYSLIB0051")]
#endif
private PreserializedResourceWriterRequiredException(SerializationInfo info, StreamingContext context)
: base(info, context) { }
}

Просмотреть файл

@ -1,6 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- https://learn.microsoft.com/en-us/dotnet/fundamentals/package-validation/diagnostic-ids -->
<Suppressions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<!-- We don't have the net7 reference assemblies handy to pass in to compare against the net8 ones -->
<Suppression>
<DiagnosticId>CP1002</DiagnosticId>
<Target>System.Runtime, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</Target>
<Left>ref/net7.0/Microsoft.Build.Utilities.Core.dll</Left>
<Right>ref/netstandard2.0/Microsoft.Build.Utilities.Core.dll</Right>
<IsBaselineSuppression>true</IsBaselineSuppression>
</Suppression>
<!-- PKV004 for netstandard2.0-supporting TFs that we do not have runtime assemblies for.
This is intentional, because you can only use MSBuild in the context of a .NET SDK
(on net7.0, as of MSBuild 17.4) or in the context of Visual Studio (net472), but we
@ -54,7 +62,7 @@
<DiagnosticId>PKV004</DiagnosticId>
<Target>Xamarin.XboxOne,Version=v0.0</Target>
</Suppression>
<!-- For updating target framework from net 7.0 to net 8.0 in MSBuild 17.8 suppress baseline package validation error PKV006 on net 7.0 -->
<!-- For updating target framework from net 7.0 to net 8.0 in MSBuild 17.8 suppress baseline package validation error PKV006 on net 7.0 -->
<Suppression>
<DiagnosticId>PKV006</DiagnosticId>
<Target>net7.0</Target>

Просмотреть файл

@ -1,23 +0,0 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
namespace Xunit.NetCore.Extensions
{
/// <summary>
/// This test should be run only on .NET (or .NET Core).
/// </summary>
public class DotNetOnlyFactAttribute : FactAttribute
{
/// <summary>
/// Initializes a new instance of the <see cref="DotNetOnlyFactAttribute"/> class.
/// </summary>
/// <param name="additionalMessage">The additional message that is appended to skip reason, when test is skipped.</param>
public DotNetOnlyFactAttribute(string? additionalMessage = null)
{
if (!CustomXunitAttributesUtilities.IsBuiltAgainstDotNet)
{
this.Skip = "This test only runs on .NET.".AppendAdditionalMessage(additionalMessage);
}
}
}
}

Просмотреть файл

@ -1,23 +0,0 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
namespace Xunit.NetCore.Extensions
{
/// <summary>
/// This test should be run only on .NET (or .NET Core).
/// </summary>
public class DotNetOnlyTheoryAttribute : TheoryAttribute
{
/// <summary>
/// Initializes a new instance of the <see cref="DotNetOnlyTheoryAttribute"/> class.
/// </summary>
/// <param name="additionalMessage">The additional message that is appended to skip reason, when test is skipped.</param>
public DotNetOnlyTheoryAttribute(string? additionalMessage = null)
{
if (!CustomXunitAttributesUtilities.IsBuiltAgainstDotNet)
{
this.Skip = "This test only runs on .NET.".AppendAdditionalMessage(additionalMessage);
}
}
}
}

Просмотреть файл

@ -1,25 +0,0 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
using System.Runtime.InteropServices;
namespace Xunit.NetCore.Extensions
{
/// <summary>
/// This test should be run only on Unix (Linux, OSX platforms).
/// </summary>
public class UnixOnlyFactAttribute : FactAttribute
{
/// <summary>
/// Initializes a new instance of the <see cref="UnixOnlyFactAttribute"/> class.
/// </summary>
/// <param name="additionalMessage">The additional message that is appended to skip reason, when test is skipped.</param>
public UnixOnlyFactAttribute(string? additionalMessage = null)
{
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
{
this.Skip = "This test requires Unix to run.".AppendAdditionalMessage(additionalMessage);
}
}
}
}

Просмотреть файл

@ -1,25 +0,0 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
using System.Runtime.InteropServices;
namespace Xunit.NetCore.Extensions
{
/// <summary>
/// This test should be run only on Unix (Linux, OSX platforms).
/// </summary>
public class UnixOnlyTheoryAttribute : TheoryAttribute
{
/// <summary>
/// Initializes a new instance of the <see cref="UnixOnlyTheoryAttribute"/> class.
/// </summary>
/// <param name="additionalMessage">The additional message that is appended to skip reason, when test is skipped.</param>
public UnixOnlyTheoryAttribute(string? additionalMessage = null)
{
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
{
this.Skip = "This test requires Unix to run.".AppendAdditionalMessage(additionalMessage);
}
}
}
}

Просмотреть файл

@ -1,30 +0,0 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
using System.Runtime.InteropServices;
namespace Xunit.NetCore.Extensions
{
/// <summary>
/// This test should be run only on Windows on full .NET Framework.
/// </summary>
public class WindowsFullFrameworkOnlyFactAttribute : FactAttribute
{
/// <summary>
/// Initializes a new instance of the <see cref="WindowsFullFrameworkOnlyFactAttribute"/> class.
/// </summary>
/// <param name="additionalMessage">The additional message that is appended to skip reason, when test is skipped.</param>
public WindowsFullFrameworkOnlyFactAttribute(string? additionalMessage = null)
{
if (!RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
{
this.Skip = "This test only runs on Windows on full framework.".AppendAdditionalMessage(additionalMessage);
return;
}
if (!CustomXunitAttributesUtilities.IsBuiltAgainstNetFramework)
{
this.Skip = "This test only runs on full framework.".AppendAdditionalMessage(additionalMessage);
}
}
}
}

Просмотреть файл

@ -1,31 +0,0 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
using System.Runtime.InteropServices;
namespace Xunit.NetCore.Extensions
{
/// <summary>
/// This test should be run only on Windows on full .NET Framework.
/// </summary>
public class WindowsFullFrameworkOnlyTheoryAttribute : TheoryAttribute
{
/// <summary>
/// Initializes a new instance of the <see cref="WindowsFullFrameworkOnlyTheoryAttribute"/> class.
/// Creates the attribute.
/// </summary>
/// <param name="additionalMessage">The additional message that is appended to skip reason, when test is skipped.</param>
public WindowsFullFrameworkOnlyTheoryAttribute(string? additionalMessage = null)
{
if (!RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
{
this.Skip = "This test only runs on Windows on full framework.".AppendAdditionalMessage(additionalMessage);
return;
}
if (!CustomXunitAttributesUtilities.IsBuiltAgainstNetFramework)
{
this.Skip = "This test only runs on full framework.".AppendAdditionalMessage(additionalMessage);
}
}
}
}

Просмотреть файл

@ -1,25 +0,0 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
using System.Runtime.InteropServices;
namespace Xunit.NetCore.Extensions
{
/// <summary>
/// This test should be run only on Windows.
/// </summary>
public class WindowsOnlyFactAttribute : FactAttribute
{
/// <summary>
/// Initializes a new instance of the <see cref="WindowsOnlyFactAttribute"/> class.
/// </summary>
/// <param name="additionalMessage">The additional message that is appended to skip reason, when test is skipped.</param>
public WindowsOnlyFactAttribute(string? additionalMessage = null)
{
if (!RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
{
this.Skip = "This test requires Windows to run.".AppendAdditionalMessage(additionalMessage);
}
}
}
}

Просмотреть файл

@ -1,25 +0,0 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
using System.Runtime.InteropServices;
namespace Xunit.NetCore.Extensions
{
/// <summary>
/// This test should be run only on Windows.
/// </summary>
public class WindowsOnlyTheoryAttribute : TheoryAttribute
{
/// <summary>
/// Initializes a new instance of the <see cref="WindowsOnlyTheoryAttribute"/> class.
/// </summary>
/// <param name="additionalMessage">The additional message that is appended to skip reason, when test is skipped.</param>
public WindowsOnlyTheoryAttribute(string? additionalMessage = null)
{
if (!RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
{
this.Skip = "This test requires Windows to run.".AppendAdditionalMessage(additionalMessage);
}
}
}
}

Просмотреть файл

@ -7,6 +7,8 @@
<IsTestProject>false</IsTestProject><!-- while this project references xunit it isn't itself a test -->
</PropertyGroup>
<ItemGroup>
<PackageReference Include="xunit.core" />
<!-- Implicit references to xunit.core and xunit.assert in test projects by Arcade
cause restore failures if PackageVersion is in the normal .props file. -->
<PackageReference Include="xunit.core" VersionOverride="$(XUnitVersion)" />
</ItemGroup>
</Project>
</Project>