Organize workspace: Frontend, Backend, and Tests in one repo

This commit is contained in:
2026-03-04 22:04:07 +00:00
parent a24e901b7f
commit c065cbf61e
5390 changed files with 844081 additions and 446 deletions

View File

@@ -0,0 +1,12 @@
<Project>
<PropertyGroup>
<InvariantTimezone Condition="'$(InvariantTimezone)' == ''">false</InvariantTimezone>
<HybridGlobalization Condition="'$(HybridGlobalization)' == ''">false</HybridGlobalization>
<InvariantGlobalization Condition="'$(InvariantGlobalization)' == ''">false</InvariantGlobalization>
<EventSourceSupport Condition="'$(EventSourceSupport)' == ''">false</EventSourceSupport>
<UseSystemResourceKeys Condition="'$(UseSystemResourceKeys)' == ''">true</UseSystemResourceKeys>
<EnableUnsafeUTF7Encoding Condition="'$(EnableUnsafeUTF7Encoding)' == ''">false</EnableUnsafeUTF7Encoding>
<HttpActivityPropagationSupport Condition="'$(HttpActivityPropagationSupport)' == ''">false</HttpActivityPropagationSupport>
<DebuggerSupport Condition="'$(DebuggerSupport)' == '' and '$(Configuration)' != 'Debug'">false</DebuggerSupport>
</PropertyGroup>
</Project>

View File

@@ -0,0 +1,16 @@
<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. -->
<Project>
<PropertyGroup>
<WasiNativeWorkloadAvailable Condition="$([MSBuild]::VersionGreaterThanOrEquals('$(TargetFrameworkVersion)', '9.0')) and '$(WasiNativeWorkload)' == 'net9.0'">true</WasiNativeWorkloadAvailable>
<TargetsCurrent Condition="'$(TargetFrameworkIdentifier)' == '.NETCoreApp' and $([MSBuild]::VersionGreaterThanOrEquals('$(TargetFrameworkVersion)', '9.0'))">true</TargetsCurrent>
<TargetsNet8 Condition="'$(TargetFrameworkIdentifier)' == '.NETCoreApp' and $([MSBuild]::VersionEquals('$(TargetFrameworkVersion)', '8.0'))">true</TargetsNet8>
</PropertyGroup>
<PropertyGroup Condition="'$(TargetFrameworkIdentifier)' == '.NETCoreApp'">
<UsingWasiRuntimeWorkload Condition="'$(UsingWasiRuntimeWorkload)' == ''">$(WasiNativeWorkloadAvailable)</UsingWasiRuntimeWorkload>
</PropertyGroup>
<Target Name="FailBuild" BeforeTargets="ProcessFrameworkReferences;Restore;Build;Publish" Condition="'$(RuntimeIdentifier)' == 'wasi-wasm'">
<Error Text="The 'wasi-experimental' workload is not supported in .NET 9." />
</Target>
</Project>

View File

@@ -0,0 +1,506 @@
{
"version": "9.0.13",
"depends-on": {
"Microsoft.NET.Workload.Emscripten.Current": "9.0.13"
},
"workloads": {
"wasm-tools": {
"description": ".NET WebAssembly build tools for net9.0",
"packs": [
"Microsoft.NET.Runtime.WebAssembly.Sdk.net9",
"Microsoft.NET.Sdk.WebAssembly.Pack.net9",
"Microsoft.NETCore.App.Runtime.Mono.net9.browser-wasm",
"Microsoft.NETCore.App.Runtime.AOT.Cross.net9.browser-wasm"
],
"extends": [ "microsoft-net-runtime-mono-tooling", "microsoft-net-sdk-emscripten" ],
"platforms": [ "win-x64", "win-arm64", "linux-x64", "linux-arm64", "linux-musl-x64", "linux-musl-arm64", "osx-x64", "osx-arm64"]
},
"wasm-experimental": {
"description": ".NET WebAssembly experimental tooling for net9.0",
"packs": [
"Microsoft.NET.Runtime.WebAssembly.Templates.net9",
"Microsoft.NETCore.App.Runtime.Mono.multithread.net9.browser-wasm"
],
"extends": [ "wasm-tools" ],
"platforms": [ "win-x64", "win-arm64", "linux-x64", "linux-arm64", "linux-musl-x64", "linux-musl-arm64", "osx-x64", "osx-arm64" ]
},
"wasi-experimental": {
"description": ".NET WASI experimental tooing for for net9.0",
"packs": [
"Microsoft.NET.Runtime.WebAssembly.Wasi.Sdk.net9",
"Microsoft.NETCore.App.Runtime.Mono.net9.wasi-wasm",
"Microsoft.NET.Runtime.WebAssembly.Templates.net9",
"Microsoft.NETCore.App.Runtime.AOT.Cross.net9.wasi-wasm"
],
"extends": [ "microsoft-net-runtime-mono-tooling" ],
"platforms": [ "win-x64", "win-arm64", "linux-x64", "linux-arm64", "linux-musl-x64", "linux-musl-arm64", "osx-x64", "osx-arm64" ]
},
"mobile-librarybuilder": {
"description": "Mobile SDK for building a self-contained .NET native library in net9.0",
"packs": [
"Microsoft.NET.Runtime.LibraryBuilder.Sdk.net9"
],
"extends": [ "microsoft-net-runtime-android-aot", "microsoft-net-runtime-ios", "microsoft-net-runtime-maccatalyst", "microsoft-net-runtime-tvos" ],
"platforms": [ "win-x64", "win-arm64", "osx-x64", "osx-arm64" ]
},
"microsoft-net-runtime-android": {
"abstract": true,
"description": "Android Mono Runtime",
"packs": [
"Microsoft.NETCore.App.Runtime.Mono.net9.android-arm",
"Microsoft.NETCore.App.Runtime.Mono.net9.android-arm64",
"Microsoft.NETCore.App.Runtime.Mono.net9.android-x64",
"Microsoft.NETCore.App.Runtime.Mono.net9.android-x86"
],
"extends": [ "microsoft-net-runtime-mono-tooling" ],
"platforms": [ "win-x64", "win-arm64", "linux-x64", "linux-arm64", "osx-x64", "osx-arm64" ]
},
"microsoft-net-runtime-android-aot": {
"abstract": true,
"description": "Android Mono AOT Workload",
"packs": [
"Microsoft.NETCore.App.Runtime.AOT.Cross.net9.android-x86",
"Microsoft.NETCore.App.Runtime.AOT.Cross.net9.android-x64",
"Microsoft.NETCore.App.Runtime.AOT.Cross.net9.android-arm",
"Microsoft.NETCore.App.Runtime.AOT.Cross.net9.android-arm64"
],
"extends": [ "microsoft-net-runtime-android" ],
"platforms": [ "win-x64", "win-arm64", "linux-x64", "linux-arm64", "osx-x64", "osx-arm64" ]
},
"microsoft-net-runtime-ios": {
"abstract": true,
"description": "iOS Mono Runtime and AOT Workload",
"packs": [
"Microsoft.NETCore.App.Runtime.AOT.Cross.net9.ios-arm64",
"Microsoft.NETCore.App.Runtime.AOT.Cross.net9.iossimulator-arm64",
"Microsoft.NETCore.App.Runtime.AOT.Cross.net9.iossimulator-x64"
],
"extends": [ "runtimes-ios" ],
"platforms": [ "win-x64", "win-arm64", "osx-arm64", "osx-x64" ]
},
"runtimes-ios": {
"abstract": true,
"description": "iOS Mono Runtime Packs",
"packs": [
"Microsoft.NETCore.App.Runtime.Mono.net9.ios-arm64",
"Microsoft.NETCore.App.Runtime.Mono.net9.iossimulator-arm64",
"Microsoft.NETCore.App.Runtime.Mono.net9.iossimulator-x64"
],
"extends": [ "microsoft-net-runtime-mono-tooling" ],
"platforms": [ "win-x64", "win-arm64", "osx-arm64", "osx-x64" ]
},
"microsoft-net-runtime-maccatalyst": {
"abstract": true,
"description": "MacCatalyst Mono Runtime and AOT Workload",
"packs": [
"Microsoft.NETCore.App.Runtime.AOT.Cross.net9.maccatalyst-arm64",
"Microsoft.NETCore.App.Runtime.AOT.Cross.net9.maccatalyst-x64"
],
"extends": [ "runtimes-maccatalyst" ],
"platforms": [ "win-x64", "win-arm64", "osx-arm64", "osx-x64" ]
},
"runtimes-maccatalyst": {
"abstract": true,
"description": "MacCatalyst Mono Runtime Packs",
"packs": [
"Microsoft.NETCore.App.Runtime.Mono.net9.maccatalyst-arm64",
"Microsoft.NETCore.App.Runtime.Mono.net9.maccatalyst-x64"
],
"extends": [ "microsoft-net-runtime-mono-tooling" ],
"platforms": [ "win-x64", "win-arm64", "osx-arm64", "osx-x64" ]
},
"microsoft-net-runtime-macos": {
"abstract": true,
"description": "MacOS CoreCLR and Mono Runtime Workload",
"packs": [
"Microsoft.NETCore.App.Runtime.Mono.net9.osx-arm64",
"Microsoft.NETCore.App.Runtime.Mono.net9.osx-x64",
"Microsoft.NETCore.App.Runtime.net9.osx-arm64",
"Microsoft.NETCore.App.Runtime.net9.osx-x64"
],
"extends": [ "microsoft-net-runtime-mono-tooling" ],
"platforms": [ "osx-arm64", "osx-x64" ]
},
"microsoft-net-runtime-tvos": {
"abstract": true,
"description": "tvOS Mono Runtime and AOT Workload",
"packs": [
"Microsoft.NETCore.App.Runtime.AOT.Cross.net9.tvos-arm64",
"Microsoft.NETCore.App.Runtime.AOT.Cross.net9.tvossimulator-arm64",
"Microsoft.NETCore.App.Runtime.AOT.Cross.net9.tvossimulator-x64"
],
"extends": [ "runtimes-tvos" ],
"platforms": [ "win-x64", "win-arm64", "osx-arm64", "osx-x64" ]
},
"runtimes-tvos": {
"abstract": true,
"description": "tvOS Mono Runtime Packs",
"packs": [
"Microsoft.NETCore.App.Runtime.Mono.net9.tvos-arm64",
"Microsoft.NETCore.App.Runtime.Mono.net9.tvossimulator-arm64",
"Microsoft.NETCore.App.Runtime.Mono.net9.tvossimulator-x64"
],
"extends": [ "microsoft-net-runtime-mono-tooling" ],
"platforms": [ "win-x64", "win-arm64", "osx-arm64", "osx-x64" ]
},
"runtimes-windows": {
"abstract": true,
"description": "Windows Runtime Packs",
"packs": [
"Microsoft.NETCore.App.Runtime.net9.win-x64",
"Microsoft.NETCore.App.Runtime.net9.win-x86",
"Microsoft.NETCore.App.Runtime.net9.win-arm64"
]
},
"microsoft-net-runtime-mono-tooling": {
"abstract": true,
"description": "Shared native build tooling for Mono runtime",
"packs": [
"Microsoft.NET.Runtime.MonoAOTCompiler.Task.net9",
"Microsoft.NET.Runtime.MonoTargets.Sdk.net9"
]
}
},
"packs": {
"Microsoft.NET.Runtime.MonoAOTCompiler.Task.net9": {
"kind": "Sdk",
"version": "9.0.13",
"alias-to": {
"any": "Microsoft.NET.Runtime.MonoAOTCompiler.Task"
}
},
"Microsoft.NET.Runtime.MonoTargets.Sdk.net9": {
"kind": "Sdk",
"version": "9.0.13",
"alias-to": {
"any": "Microsoft.NET.Runtime.MonoTargets.Sdk"
}
},
"Microsoft.NET.Runtime.LibraryBuilder.Sdk.net9": {
"kind": "Sdk",
"version": "9.0.13",
"alias-to": {
"any": "Microsoft.NET.Runtime.LibraryBuilder.Sdk"
}
},
"Microsoft.NET.Runtime.WebAssembly.Sdk.net9": {
"kind": "Sdk",
"version": "9.0.13",
"alias-to": {
"any": "Microsoft.NET.Runtime.WebAssembly.Sdk"
}
},
"Microsoft.NET.Sdk.WebAssembly.Pack.net9": {
"kind": "library",
"version": "9.0.13",
"alias-to": {
"any": "Microsoft.NET.Sdk.WebAssembly.Pack"
}
},
"Microsoft.NET.Runtime.WebAssembly.Wasi.Sdk.net9": {
"kind": "Sdk",
"version": "9.0.13",
"alias-to": {
"any": "Microsoft.NET.Runtime.WebAssembly.Wasi.Sdk"
}
},
"Microsoft.NET.Runtime.WebAssembly.Templates.net9": {
"kind": "template",
"version": "9.0.13"
},
"Microsoft.NETCore.App.Runtime.Mono.net9.android-arm": {
"kind": "framework",
"version": "9.0.13",
"alias-to": {
"any": "Microsoft.NETCore.App.Runtime.Mono.android-arm"
}
},
"Microsoft.NETCore.App.Runtime.Mono.net9.android-arm64": {
"kind": "framework",
"version": "9.0.13",
"alias-to": {
"any": "Microsoft.NETCore.App.Runtime.Mono.android-arm64"
}
},
"Microsoft.NETCore.App.Runtime.Mono.net9.android-x64": {
"kind": "framework",
"version": "9.0.13",
"alias-to": {
"any": "Microsoft.NETCore.App.Runtime.Mono.android-x64"
}
},
"Microsoft.NETCore.App.Runtime.Mono.net9.android-x86": {
"kind": "framework",
"version": "9.0.13",
"alias-to": {
"any": "Microsoft.NETCore.App.Runtime.Mono.android-x86"
}
},
"Microsoft.NETCore.App.Runtime.AOT.Cross.net9.android-x86": {
"kind": "Sdk",
"version": "9.0.13",
"alias-to": {
"win-x64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-x86",
"win-arm64": "Microsoft.NETCore.App.Runtime.AOT.win-arm64.Cross.android-x86",
"linux-x64": "Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.android-x86",
"linux-arm64": "Microsoft.NETCore.App.Runtime.AOT.linux-arm64.Cross.android-x86",
"osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-x86",
"osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.android-x86"
}
},
"Microsoft.NETCore.App.Runtime.AOT.Cross.net9.android-x64": {
"kind": "Sdk",
"version": "9.0.13",
"alias-to": {
"win-x64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-x64",
"win-arm64": "Microsoft.NETCore.App.Runtime.AOT.win-arm64.Cross.android-x64",
"linux-x64": "Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.android-x64",
"linux-arm64": "Microsoft.NETCore.App.Runtime.AOT.linux-arm64.Cross.android-x64",
"osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-x64",
"osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.android-x64"
}
},
"Microsoft.NETCore.App.Runtime.AOT.Cross.net9.android-arm": {
"kind": "Sdk",
"version": "9.0.13",
"alias-to": {
"win-x64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-arm",
"win-arm64": "Microsoft.NETCore.App.Runtime.AOT.win-arm64.Cross.android-arm",
"linux-x64": "Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.android-arm",
"linux-arm64": "Microsoft.NETCore.App.Runtime.AOT.linux-arm64.Cross.android-arm",
"osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-arm",
"osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.android-arm"
}
},
"Microsoft.NETCore.App.Runtime.AOT.Cross.net9.android-arm64": {
"kind": "Sdk",
"version": "9.0.13",
"alias-to": {
"win-x64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.android-arm64",
"win-arm64": "Microsoft.NETCore.App.Runtime.AOT.win-arm64.Cross.android-arm64",
"linux-x64": "Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.android-arm64",
"linux-arm64": "Microsoft.NETCore.App.Runtime.AOT.linux-arm64.Cross.android-arm64",
"osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.android-arm64",
"osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.android-arm64"
}
},
"Microsoft.NETCore.App.Runtime.Mono.net9.maccatalyst-arm64": {
"kind": "framework",
"version": "9.0.13",
"alias-to": {
"any": "Microsoft.NETCore.App.Runtime.Mono.maccatalyst-arm64"
}
},
"Microsoft.NETCore.App.Runtime.Mono.net9.maccatalyst-x64": {
"kind": "framework",
"version": "9.0.13",
"alias-to": {
"any": "Microsoft.NETCore.App.Runtime.Mono.maccatalyst-x64"
}
},
"Microsoft.NETCore.App.Runtime.Mono.net9.osx-arm64": {
"kind": "framework",
"version": "9.0.13",
"alias-to": {
"any": "Microsoft.NETCore.App.Runtime.Mono.osx-arm64"
}
},
"Microsoft.NETCore.App.Runtime.Mono.net9.osx-x64": {
"kind": "framework",
"version": "9.0.13",
"alias-to": {
"any": "Microsoft.NETCore.App.Runtime.Mono.osx-x64"
}
},
"Microsoft.NETCore.App.Runtime.net9.osx-arm64": {
"kind": "framework",
"version": "9.0.13",
"alias-to": {
"any": "Microsoft.NETCore.App.Runtime.osx-arm64"
}
},
"Microsoft.NETCore.App.Runtime.net9.osx-x64": {
"kind": "framework",
"version": "9.0.13",
"alias-to": {
"any": "Microsoft.NETCore.App.Runtime.osx-x64"
}
},
"Microsoft.NETCore.App.Runtime.Mono.net9.ios-arm64" : {
"kind": "framework",
"version": "9.0.13",
"alias-to": {
"any": "Microsoft.NETCore.App.Runtime.Mono.ios-arm64"
}
},
"Microsoft.NETCore.App.Runtime.Mono.net9.iossimulator-arm64" : {
"kind": "framework",
"version": "9.0.13",
"alias-to": {
"any": "Microsoft.NETCore.App.Runtime.Mono.iossimulator-arm64"
}
},
"Microsoft.NETCore.App.Runtime.Mono.net9.iossimulator-x64" : {
"kind": "framework",
"version": "9.0.13",
"alias-to": {
"any": "Microsoft.NETCore.App.Runtime.Mono.iossimulator-x64"
}
},
"Microsoft.NETCore.App.Runtime.AOT.Cross.net9.tvos-arm64": {
"kind": "Sdk",
"version": "9.0.13",
"alias-to": {
"osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.tvos-arm64",
"osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.tvos-arm64",
}
},
"Microsoft.NETCore.App.Runtime.Mono.net9.tvos-arm64" : {
"kind": "framework",
"version": "9.0.13",
"alias-to": {
"any": "Microsoft.NETCore.App.Runtime.Mono.tvos-arm64"
}
},
"Microsoft.NETCore.App.Runtime.Mono.net9.tvossimulator-arm64" : {
"kind": "framework",
"version": "9.0.13",
"alias-to": {
"any": "Microsoft.NETCore.App.Runtime.Mono.tvossimulator-arm64"
}
},
"Microsoft.NETCore.App.Runtime.Mono.net9.tvossimulator-x64" : {
"kind": "framework",
"version": "9.0.13",
"alias-to": {
"any": "Microsoft.NETCore.App.Runtime.Mono.tvossimulator-x64"
}
},
"Microsoft.NETCore.App.Runtime.AOT.Cross.net9.maccatalyst-arm64": {
"kind": "Sdk",
"version": "9.0.13",
"alias-to": {
"osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.maccatalyst-arm64",
"osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.maccatalyst-arm64"
}
},
"Microsoft.NETCore.App.Runtime.AOT.Cross.net9.maccatalyst-x64": {
"kind": "Sdk",
"version": "9.0.13",
"alias-to": {
"osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.maccatalyst-x64",
"osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.maccatalyst-x64"
}
},
"Microsoft.NETCore.App.Runtime.AOT.Cross.net9.tvossimulator-arm64": {
"kind": "Sdk",
"version": "9.0.13",
"alias-to": {
"osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.tvossimulator-arm64",
"osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.tvossimulator-arm64"
}
},
"Microsoft.NETCore.App.Runtime.AOT.Cross.net9.tvossimulator-x64": {
"kind": "Sdk",
"version": "9.0.13",
"alias-to": {
"osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.tvossimulator-x64",
"osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.tvossimulator-x64"
}
},
"Microsoft.NETCore.App.Runtime.AOT.Cross.net9.ios-arm64": {
"kind": "Sdk",
"version": "9.0.13",
"alias-to": {
"osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.ios-arm64",
"osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.ios-arm64",
}
},
"Microsoft.NETCore.App.Runtime.AOT.Cross.net9.iossimulator-arm64": {
"kind": "Sdk",
"version": "9.0.13",
"alias-to": {
"osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.iossimulator-arm64",
"osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.iossimulator-arm64"
}
},
"Microsoft.NETCore.App.Runtime.AOT.Cross.net9.iossimulator-x64": {
"kind": "Sdk",
"version": "9.0.13",
"alias-to": {
"osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.iossimulator-x64",
"osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.iossimulator-x64"
}
},
"Microsoft.NETCore.App.Runtime.AOT.Cross.net9.browser-wasm": {
"kind": "Sdk",
"version": "9.0.13",
"alias-to": {
"win-x64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.browser-wasm",
"win-arm64": "Microsoft.NETCore.App.Runtime.AOT.win-arm64.Cross.browser-wasm",
"linux-x64": "Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.browser-wasm",
"linux-arm64": "Microsoft.NETCore.App.Runtime.AOT.linux-arm64.Cross.browser-wasm",
"linux-musl-x64": "Microsoft.NETCore.App.Runtime.AOT.linux-musl-x64.Cross.browser-wasm",
"linux-musl-arm64": "Microsoft.NETCore.App.Runtime.AOT.linux-musl-arm64.Cross.browser-wasm",
"osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.browser-wasm",
"osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.browser-wasm"
}
},
"Microsoft.NETCore.App.Runtime.AOT.Cross.net9.wasi-wasm": {
"kind": "Sdk",
"version": "9.0.13",
"alias-to": {
"win-x64": "Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.wasi-wasm",
"win-arm64": "Microsoft.NETCore.App.Runtime.AOT.win-arm64.Cross.wasi-wasm",
"linux-x64": "Microsoft.NETCore.App.Runtime.AOT.linux-x64.Cross.wasi-wasm",
"linux-arm64": "Microsoft.NETCore.App.Runtime.AOT.linux-arm64.Cross.wasi-wasm",
"linux-musl-x64": "Microsoft.NETCore.App.Runtime.AOT.linux-musl-x64.Cross.wasi-wasm",
"linux-musl-arm64": "Microsoft.NETCore.App.Runtime.AOT.linux-musl-arm64.Cross.wasi-wasm",
"osx-x64": "Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.wasi-wasm",
"osx-arm64": "Microsoft.NETCore.App.Runtime.AOT.osx-arm64.Cross.wasi-wasm"
}
},
"Microsoft.NETCore.App.Runtime.Mono.net9.browser-wasm" : {
"kind": "framework",
"version": "9.0.13",
"alias-to": {
"any": "Microsoft.NETCore.App.Runtime.Mono.browser-wasm"
}
},
"Microsoft.NETCore.App.Runtime.Mono.multithread.net9.browser-wasm" : {
"kind": "framework",
"version": "9.0.13",
"alias-to": {
"any": "Microsoft.NETCore.App.Runtime.Mono.multithread.browser-wasm"
}
},
"Microsoft.NETCore.App.Runtime.Mono.net9.wasi-wasm" : {
"kind": "framework",
"version": "9.0.13",
"alias-to": {
"any": "Microsoft.NETCore.App.Runtime.Mono.wasi-wasm"
}
},
"Microsoft.NETCore.App.Runtime.net9.win-x64" : {
"kind": "framework",
"version": "9.0.13",
"alias-to": {
"any": "Microsoft.NETCore.App.Runtime.win-x64"
}
},
"Microsoft.NETCore.App.Runtime.net9.win-x86" : {
"kind": "framework",
"version": "9.0.13",
"alias-to": {
"any": "Microsoft.NETCore.App.Runtime.win-x86"
}
},
"Microsoft.NETCore.App.Runtime.net9.win-arm64" : {
"kind": "framework",
"version": "9.0.13",
"alias-to": {
"any": "Microsoft.NETCore.App.Runtime.win-arm64"
}
}
}
}

View File

@@ -0,0 +1,236 @@
<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. -->
<Project>
<PropertyGroup>
<_RuntimePackInWorkloadVersionCurrent>9.0.13</_RuntimePackInWorkloadVersionCurrent>
<_RuntimePackInWorkloadVersion8>8.0.24</_RuntimePackInWorkloadVersion8>
<_RuntimePackInWorkloadVersion7>7.0.20</_RuntimePackInWorkloadVersion7>
<_RuntimePackInWorkloadVersion6>6.0.36</_RuntimePackInWorkloadVersion6>
<TargetsCurrent Condition="'$(TargetFrameworkIdentifier)' == '.NETCoreApp' and $([MSBuild]::VersionEquals('$(TargetFrameworkVersion)', '9.0'))">true</TargetsCurrent>
<!-- force net8 to use the current targets until the SDK can target net9 -->
<ForceNet8Current Condition="'$(ForceNet8Current)' == ''">false</ForceNet8Current>
<TargetsCurrent Condition="'$(ForceNet8Current)' == 'true' and '$(TargetFrameworkIdentifier)' == '.NETCoreApp' and $([MSBuild]::VersionGreaterThanOrEquals('$(TargetFrameworkVersion)', '8.0'))">true</TargetsCurrent>
</PropertyGroup>
<PropertyGroup Condition="'$(TargetsCurrent)' != 'true'">
<TargetsNet8 Condition="'$(TargetFrameworkIdentifier)' == '.NETCoreApp' and $([MSBuild]::VersionEquals('$(TargetFrameworkVersion)', '8.0'))">true</TargetsNet8>
<TargetsNet7 Condition="'$(TargetFrameworkIdentifier)' == '.NETCoreApp' and $([MSBuild]::VersionEquals('$(TargetFrameworkVersion)', '7.0'))">true</TargetsNet7>
<TargetsNet6 Condition="'$(TargetFrameworkIdentifier)' == '.NETCoreApp' and $([MSBuild]::VersionEquals('$(TargetFrameworkVersion)', '6.0'))">true</TargetsNet6>
<!-- override WorkloadDetectionWhen net7 == net8 -->
<WasmNativeWorkload7 Condition="'7.0.20' == '9.0.13'">$(WasmNativeWorkload8)</WasmNativeWorkload7>
</PropertyGroup>
<Import Project="$(MSBuildThisFileDirectory)WorkloadManifest.Wasi.targets" Condition="'$(RuntimeIdentifier)' == 'wasi-wasm'" />
<PropertyGroup Condition="'$(RuntimeIdentifier)' == 'browser-wasm' and '$(TargetFrameworkIdentifier)' == '.NETCoreApp'">
<_BrowserWorkloadNotSupportedForTFM Condition="$([MSBuild]::VersionLessThan($(TargetFrameworkVersion), '6.0'))">true</_BrowserWorkloadNotSupportedForTFM>
<_BrowserWorkloadDisabled>$(_BrowserWorkloadNotSupportedForTFM)</_BrowserWorkloadDisabled>
<_UsingBlazorOrWasmSdk Condition="'$(UsingMicrosoftNETSdkBlazorWebAssembly)' == 'true' or '$(UsingMicrosoftNETSdkWebAssembly)' == 'true'">true</_UsingBlazorOrWasmSdk>
</PropertyGroup>
<PropertyGroup Condition="'$(RuntimeIdentifier)' == 'browser-wasm'">
<SelfContained>true</SelfContained>
<WasmNativeWorkloadAvailable Condition="'$(TargetsCurrent)' == 'true'">$(WasmNativeWorkload9)</WasmNativeWorkloadAvailable>
<WasmNativeWorkloadAvailable Condition="'$(TargetsNet8)' == 'true'">$(WasmNativeWorkload8)</WasmNativeWorkloadAvailable>
<WasmNativeWorkloadAvailable Condition="'$(TargetsNet7)' == 'true'">$(WasmNativeWorkload7)</WasmNativeWorkloadAvailable>
<WasmNativeWorkloadAvailable Condition="'$(TargetsNet6)' == 'true'">$(WasmNativeWorkload)</WasmNativeWorkloadAvailable>
<WasmNativeWorkloadAvailable Condition="'$(WasmNativeWorkloadAvailable)' == '' or '$(WasmNativeWorkload)' == 'false'">false</WasmNativeWorkloadAvailable>
<WasmNativeWorkload>$(WasmNativeWorkloadAvailable)</WasmNativeWorkload>
<!-- Runtime feature defaults to trim unnecessary code -->
</PropertyGroup>
<Import Project="$(MSBuildThisFileDirectory)WasmFeatures.props" Condition="'$(RuntimeIdentifier)' == 'browser-wasm' or '$(RuntimeIdentifier)' == 'wasi-wasm'" />
<PropertyGroup Condition="'$(RuntimeIdentifier)' == 'browser-wasm' and '$(TargetFrameworkIdentifier)' == '.NETCoreApp'">
<!-- Keep in sync with WasmApp.Native.targets -->
<_WasmPropertiesDifferFromRuntimePackThusNativeBuildNeeded Condition="
'$(WasmEnableSIMD)' == 'false' or
'$(WasmEnableExceptionHandling)' == 'false' or
'$(InvariantTimezone)' == 'true' or
('$(_UsingBlazorOrWasmSdk)' != 'true' and '$(InvariantGlobalization)' == 'true') or
'$(WasmNativeStrip)' == 'false'">true</_WasmPropertiesDifferFromRuntimePackThusNativeBuildNeeded>
<!-- $(WasmBuildNative)==true is needed to enable workloads, when using native references, without AOT -->
<!-- FIXME: is the blazor condition here correct? -->
<_WasmNativeWorkloadNeeded Condition="
'$(_WasmPropertiesDifferFromRuntimePackThusNativeBuildNeeded)' == 'true' or
'$(RunAOTCompilation)' == 'true' or
'$(WasmBuildNative)' == 'true' or
'$(WasmGenerateAppBundle)' == 'true' or
'$(_UsingBlazorOrWasmSdk)' != 'true' or
'$(EmccMaximumHeapSize)' != '' " >true</_WasmNativeWorkloadNeeded>
<UsingBrowserRuntimeWorkload Condition="'$(_BrowserWorkloadNotSupportedForTFM)' == 'true'">false</UsingBrowserRuntimeWorkload>
<UsingBrowserRuntimeWorkload Condition="'$(UsingBrowserRuntimeWorkload)' == '' and '$(_WasmNativeWorkloadNeeded)' == 'true'">true</UsingBrowserRuntimeWorkload>
<UsingBrowserRuntimeWorkload Condition="'$(UsingBrowserRuntimeWorkload)' == ''">$(WasmNativeWorkloadAvailable)</UsingBrowserRuntimeWorkload>
</PropertyGroup>
<!-- Mono AOT library mode support -->
<PropertyGroup Condition="'$(PublishAot)' != 'true' and '$(NativeLib)' != ''">
<_IsAndroidLibraryMode Condition="'$(RuntimeIdentifier)' == 'android-arm64' or '$(RuntimeIdentifier)' == 'android-arm' or '$(RuntimeIdentifier)' == 'android-x64' or '$(RuntimeIdentifier)' == 'android-x86'">true</_IsAndroidLibraryMode>
<_IsAppleMobileLibraryMode Condition="'$(RuntimeIdentifier)' == 'ios-arm64' or '$(RuntimeIdentifier)' == 'iossimulator-arm64' or '$(RuntimeIdentifier)' == 'iossimulator-x64' or '$(RuntimeIdentifier)' == 'maccatalyst-arm64' or '$(RuntimeIdentifier)' == 'maccatalyst-x64' or '$(RuntimeIdentifier)' == 'tvos-arm64'">true</_IsAppleMobileLibraryMode>
<_IsiOSLibraryMode Condition="'$(RuntimeIdentifier)' == 'ios-arm64' or '$(RuntimeIdentifier)' == 'iossimulator-arm64' or '$(RuntimeIdentifier)' == 'iossimulator-x64'">true</_IsiOSLibraryMode>
<_IsMacCatalystLibraryMode Condition="'$(RuntimeIdentifier)' == 'maccatalyst-arm64' or '$(RuntimeIdentifier)' == 'maccatalyst-x64'">true</_IsMacCatalystLibraryMode>
<_IstvOSLibraryMode Condition="'$(RuntimeIdentifier)' == 'tvos-arm64'">true</_IstvOSLibraryMode>
</PropertyGroup>
<PropertyGroup
Condition="'$(TargetPlatformIdentifier)' == 'android' or '$(_IsAndroidLibraryMode)' == 'true' or '$(TargetPlatformIdentifier)' == 'macOS' or '$(TargetPlatformIdentifier)' == 'maccatalyst' or '$(TargetPlatformIdentifier)' == 'ios' or '$(TargetPlatformIdentifier)' == 'tvos' or '$(_IsAppleMobileLibraryMode)' == 'true'">
<UsingMobileWorkload>true</UsingMobileWorkload>
</PropertyGroup>
<PropertyGroup Condition="'$(_UsingBlazorOrWasmSdk)' == 'true' and '$(UsingBrowserRuntimeWorkload)' == 'true'">
<WasmGenerateAppBundle>false</WasmGenerateAppBundle>
<UsingBlazorAOTWorkloadManifest>true</UsingBlazorAOTWorkloadManifest>
</PropertyGroup>
<!-- TFM specific -->
<Import Condition="'$(TargetsCurrent)' == 'true' and '$(RunAOTCompilation)' == 'true' and ('$(UsingBrowserRuntimeWorkload)' == 'true' or '$(UsingMobileWorkload)' == 'true' or '$(UsingWasiRuntimeWorkload)' == 'true')" Project="Sdk.props" Sdk="Microsoft.NET.Runtime.MonoAOTCompiler.Task.net9" />
<ImportGroup Condition="'$(TargetsCurrent)' == 'true' and ('$(TargetPlatformIdentifier)' == 'android' or '$(_IsAndroidLibraryMode)' == 'true')">
<Import Project="Sdk.props" Sdk="Microsoft.NET.Runtime.MonoTargets.Sdk.net9" />
<Import Project="Sdk.targets" Sdk="Microsoft.NET.Runtime.MonoTargets.Sdk.net9" />
</ImportGroup>
<ImportGroup Condition="'$(_IsAndroidLibraryMode)' == 'true' or '$(_IsAppleMobileLibraryMode)' == 'true'">
<Import Project="Sdk.props" Sdk="Microsoft.NET.Runtime.LibraryBuilder.Sdk.net9" />
<Import Project="Sdk.targets" Sdk="Microsoft.NET.Runtime.LibraryBuilder.Sdk.net9" />
</ImportGroup>
<ImportGroup Condition="'$(TargetsCurrent)' == 'true' and '$(RunAOTCompilation)' == 'true' and ('$(TargetPlatformIdentifier)' == 'android' or '$(_IsAndroidLibraryMode)' == 'true')">
<Import Project="Sdk.props" Sdk="Microsoft.NETCore.App.Runtime.AOT.Cross.net9.android-x86" />
<Import Project="Sdk.props" Sdk="Microsoft.NETCore.App.Runtime.AOT.Cross.net9.android-x64" />
<Import Project="Sdk.props" Sdk="Microsoft.NETCore.App.Runtime.AOT.Cross.net9.android-arm" />
<Import Project="Sdk.props" Sdk="Microsoft.NETCore.App.Runtime.AOT.Cross.net9.android-arm64" />
</ImportGroup>
<ImportGroup Condition="'$(TargetsCurrent)' == 'true' and '$(TargetPlatformIdentifier)' == 'macOS'">
<Import Project="Sdk.props" Sdk="Microsoft.NET.Runtime.MonoTargets.Sdk.net9" />
<Import Project="Sdk.targets" Sdk="Microsoft.NET.Runtime.MonoTargets.Sdk.net9" />
</ImportGroup>
<ImportGroup Condition="'$(TargetsCurrent)' == 'true' and ('$(TargetPlatformIdentifier)' == 'ios' or '$(_IsiOSLibraryMode)' == 'true')">
<Import Project="Sdk.props" Sdk="Microsoft.NET.Runtime.MonoTargets.Sdk.net9" />
<Import Project="Sdk.targets" Sdk="Microsoft.NET.Runtime.MonoTargets.Sdk.net9" />
</ImportGroup>
<ImportGroup Condition="'$(TargetsCurrent)' == 'true' and $([MSBuild]::IsOSPlatform('osx')) and ('$(TargetPlatformIdentifier)' == 'ios' or '$(_IsiOSLibraryMode)' == 'true')">
<Import Project="Sdk.props" Sdk="Microsoft.NETCore.App.Runtime.AOT.Cross.net9.ios-arm64" />
<Import Project="Sdk.props" Sdk="Microsoft.NETCore.App.Runtime.AOT.Cross.net9.iossimulator-arm64" />
<Import Project="Sdk.props" Sdk="Microsoft.NETCore.App.Runtime.AOT.Cross.net9.iossimulator-x64" />
</ImportGroup>
<ImportGroup Condition="'$(TargetsCurrent)' == 'true' and ('$(TargetPlatformIdentifier)' == 'maccatalyst' or '$(_IsMacCatalystLibraryMode)' == 'true')">
<Import Project="Sdk.props" Sdk="Microsoft.NET.Runtime.MonoTargets.Sdk.net9" />
<Import Project="Sdk.targets" Sdk="Microsoft.NET.Runtime.MonoTargets.Sdk.net9" />
</ImportGroup>
<ImportGroup Condition="'$(TargetsCurrent)' == 'true' and $([MSBuild]::IsOSPlatform('osx')) and ('$(TargetPlatformIdentifier)' == 'maccatalyst' or '$(_IsMacCatalystLibraryMode)' == 'true')">
<Import Project="Sdk.props" Sdk="Microsoft.NETCore.App.Runtime.AOT.Cross.net9.maccatalyst-arm64" />
<Import Project="Sdk.props" Sdk="Microsoft.NETCore.App.Runtime.AOT.Cross.net9.maccatalyst-x64" />
</ImportGroup>
<ImportGroup Condition="'$(TargetsCurrent)' == 'true' and ('$(TargetPlatformIdentifier)' == 'tvos' or '$(_IstvOSLibraryMode)' == 'true')">
<Import Project="Sdk.props" Sdk="Microsoft.NET.Runtime.MonoTargets.Sdk.net9" />
<Import Project="Sdk.targets" Sdk="Microsoft.NET.Runtime.MonoTargets.Sdk.net9" />
</ImportGroup>
<ImportGroup Condition="'$(TargetsCurrent)' == 'true' and $([MSBuild]::IsOSPlatform('osx')) and ('$(TargetPlatformIdentifier)' == 'tvos' or '$(_IstvOSLibraryMode)' == 'true')">
<Import Project="Sdk.props" Sdk="Microsoft.NETCore.App.Runtime.AOT.Cross.net9.tvos-arm64" />
<Import Project="Sdk.props" Sdk="Microsoft.NETCore.App.Runtime.AOT.Cross.net9.tvossimulator-arm64" />
<Import Project="Sdk.props" Sdk="Microsoft.NETCore.App.Runtime.AOT.Cross.net9.tvossimulator-x64" />
</ImportGroup>
<ImportGroup Condition="'$(TargetsCurrent)' == 'true' and '$(RuntimeIdentifier)' == 'browser-wasm' and '$(UsingBrowserRuntimeWorkload)' == 'true'">
<Import Project="Sdk.props" Sdk="Microsoft.NET.Runtime.MonoTargets.Sdk.net9" />
<Import Project="Sdk.props" Sdk="Microsoft.NET.Runtime.WebAssembly.Sdk.net9" />
<Import Project="Sdk.targets" Sdk="Microsoft.NET.Runtime.WebAssembly.Sdk.net9" />
<Import Project="Sdk.props" Sdk="Microsoft.NETCore.App.Runtime.AOT.Cross.net9.browser-wasm" />
<Import Project="Sdk.targets" Sdk="Microsoft.NET.Runtime.MonoTargets.Sdk.net9" />
</ImportGroup>
<ImportGroup Condition="'$(TargetsCurrent)' == 'true' and '$(RuntimeIdentifier)' == 'wasi-wasm' and '$(UsingWasiRuntimeWorkload)' == 'true'">
<Import Project="Sdk.props" Sdk="Microsoft.NET.Runtime.MonoTargets.Sdk.net9" />
<Import Project="Sdk.props" Sdk="Microsoft.NET.Runtime.WebAssembly.Wasi.Sdk.net9" />
<Import Project="Sdk.targets" Sdk="Microsoft.NET.Runtime.WebAssembly.Wasi.Sdk.net9" />
<Import Project="Sdk.props" Sdk="Microsoft.NETCore.App.Runtime.AOT.Cross.net9.wasi-wasm" />
<Import Project="Sdk.targets" Sdk="Microsoft.NET.Runtime.MonoTargets.Sdk.net9" />
</ImportGroup>
<PropertyGroup Condition="$([MSBuild]::VersionGreaterThanOrEquals('$(TargetFrameworkVersion)', '8.0')) and ('$(UsingMobileWorkload)' == 'true' or '$(RuntimeIdentifier)' == 'browser-wasm' or '$(RuntimeIdentifier)' == 'wasi-wasm')">
<_MonoWorkloadTargetsMobile>true</_MonoWorkloadTargetsMobile>
<_MonoWorkloadRuntimePackPackageVersion>$(_RuntimePackInWorkloadVersionCurrent)</_MonoWorkloadRuntimePackPackageVersion>
<_KnownWebAssemblySdkPackVersion>$(_RuntimePackInWorkloadVersionCurrent)</_KnownWebAssemblySdkPackVersion>
</PropertyGroup>
<!-- Support for "browser" target platform identifier -->
<PropertyGroup Condition="'$(TargetPlatformIdentifier)' == 'browser' and $([MSBuild]::VersionGreaterThanOrEquals('$(TargetFrameworkVersion)', '8.0'))">
<TargetPlatformSupported>true</TargetPlatformSupported>
<TargetPlatformVersion Condition="'$(TargetPlatformVersion)' == ''">1.0</TargetPlatformVersion>
</PropertyGroup>
<ItemGroup Condition="'$(TargetPlatformIdentifier)' == 'browser' and $([MSBuild]::VersionGreaterThanOrEquals('$(TargetFrameworkVersion)', '8.0'))">
<SdkSupportedTargetPlatformVersion Include="1.0" />
</ItemGroup>
<!-- Support for "wasi" target platform identifier -->
<PropertyGroup Condition="'$(TargetPlatformIdentifier)' == 'wasi' and $([MSBuild]::VersionGreaterThanOrEquals('$(TargetFrameworkVersion)', '8.0'))">
<TargetPlatformSupported>true</TargetPlatformSupported>
<TargetPlatformVersion Condition="'$(TargetPlatformVersion)' == ''">1.0</TargetPlatformVersion>
</PropertyGroup>
<ItemGroup Condition="'$(TargetPlatformIdentifier)' == 'wasi' and $([MSBuild]::VersionGreaterThanOrEquals('$(TargetFrameworkVersion)', '8.0'))">
<SdkSupportedTargetPlatformVersion Include="1.0" />
</ItemGroup>
<ItemGroup Condition="(('$(RuntimeIdentifier)' == 'wasi-wasm' and '$(TargetsNet8)' == 'true') or '$(TargetsCurrent)' == 'true') and '$(_MonoWorkloadTargetsMobile)' == 'true'">
<KnownRuntimePack Update="@(KnownRuntimePack)">
<!-- FIXMEWASI: workaround for now -->
<RuntimePackRuntimeIdentifiers Condition="'$(RuntimeIdentifier)' == 'wasi-wasm'">%(RuntimePackRuntimeIdentifiers);wasi-wasm</RuntimePackRuntimeIdentifiers>
<LatestRuntimeFrameworkVersion Condition="'$(TargetsCurrent)' == 'true' and '%(KnownRuntimePack.RuntimePackLabels)' == 'Mono'">$(_MonoWorkloadRuntimePackPackageVersion)</LatestRuntimeFrameworkVersion>
<!-- Overrides for wasm threading support -->
<RuntimePackNamePatterns Condition="'$(RuntimeIdentifier)' == 'browser-wasm' and '$(WasmEnableThreads)' == 'true'">Microsoft.NETCore.App.Runtime.Mono.multithread.**RID**</RuntimePackNamePatterns>
</KnownRuntimePack>
<KnownFrameworkReference Update="Microsoft.NETCore.App">
<TargetingPackVersion Condition="'$(TargetsCurrent)' == 'true'">$(_MonoWorkloadRuntimePackPackageVersion)</TargetingPackVersion>
</KnownFrameworkReference>
<KnownWebAssemblySdkPack Update="@(KnownWebAssemblySdkPack)">
<WebAssemblySdkPackVersion Condition="'%(KnownWebAssemblySdkPack.TargetFramework)' == 'net9.0'">$(_KnownWebAssemblySdkPackVersion)</WebAssemblySdkPackVersion>
<WebAssemblySdkPackVersion Condition="'%(KnownWebAssemblySdkPack.TargetFramework)' == 'net8.0'">$(_KnownWebAssemblySdkPackVersion)</WebAssemblySdkPackVersion>
</KnownWebAssemblySdkPack>
</ItemGroup>
<!-- we can't condition sdk imports on the item @(NativeFileReference). Instead, explicitly check before the build
and emit a warning -->
<Target Name="_CheckBrowserWorkloadNeededButNotAvailable"
Condition="'$(RuntimeIdentifier)' == 'browser-wasm' and '$(_BrowserWorkloadDisabled)' != 'true' and '$(WasmNativeWorkloadAvailable)' != 'true'"
BeforeTargets="Build">
<Warning Condition="@(NativeFileReference->Count()) > 0"
Text="%40(NativeFileReference) is not empty, but the native references won't be linked in, because neither %24(WasmBuildNative), nor %24(RunAOTCompilation) are 'true'. NativeFileReference=@(NativeFileReference)" />
</Target>
<Target Name="_ErrorWorkloadDisabledForTFMLessThan6" Condition="'$(_BrowserWorkloadNotSupportedForTFM)' == 'true'" BeforeTargets="Build">
<Error Condition="'$(RunAOTCompilation)' == 'true'"
Text="WebAssembly workloads, required for AOT, are only supported for projects targeting net6.0+ . Set %24(RunAOTCompilation)=false to disable it." />
<Error Condition="@(NativeFileReference->Count()) > 0"
Text="WebAssembly workloads, required for linking native files (from %40(NativeFileReference)), are only supported for projects targeting net6.0+ ." />
<Error Condition="'$(WasmBuildNative)' == 'true'"
Text="WebAssembly workloads, required for native relinking, are only supported for projects targeting net6.0+ . Set %24(WasmBuildNative)=false to disable it." />
</Target>
<Target Name="_ErrorDualWasmThreadPropsOn7"
Condition="'$(TargetsNet7)' == 'true' and '$(RuntimeIdentifier)' == 'browser-wasm' and
'$(BrowserWorkloadDisabled)' != 'true' and '$(WasmEnableThreads)' == 'true' and '$(WasmEnablePerfTrace)' == 'true'"
BeforeTargets="Build">
<Error Text="WebAssembly workloads can only support one active threading mode at a time. Either set WasmEnableThreads or WasmEnablePerfTracing to true, but not both." />
</Target>
<Target Name="_SuggestWasmWorkloadForBlazor" BeforeTargets="Publish">
<Message
Condition="'$(_UsingBlazorOrWasmSdk)' == 'true' and '$(WasmNativeWorkloadAvailable)' != 'true'"
Text="Publishing without optimizations. Although it's optional for Blazor, we strongly recommend using `wasm-tools` workload! You can install it by running `dotnet workload install wasm-tools` from the command line."
Importance="High" />
</Target>
<Import Condition="'$(_MonoWorkloadTargetsMobile)' == 'true'"
Project="$(MSBuildThisFileDirectory)WorkloadTelemetry.targets" />
</Project>

View File

@@ -0,0 +1,49 @@
<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. -->
<Project>
<Target Name="_WorkloadTelemetry"
Condition="'$(_MonoWorkloadTargetsMobile)' == 'true' and '$(TargetsCurrent)' == 'true'"
AfterTargets="Publish"
DependsOnTargets="_WorkloadGatherTelemetryData">
<ItemGroup>
<WorkloadPublishProperties Include="TargetPlatformIdentifier" Value="$(TargetPlatformIdentifier)" />
<WorkloadPublishProperties Include="RuntimeIdentifier" Value="$(RuntimeIdentifier)" />
<WorkloadPublishProperties Include="BlazorWasm" Value="$(_WorkloadUsesBlazorWasm)" />
<WorkloadPublishProperties Include="WasmSDK" Value="$(_WorkloadUsesWasmSDK)" />
<WorkloadPublishProperties Include="UsesMaui" Value="$(UseMaui)" />
<WorkloadPublishProperties Include="UsesMobileSDKOnly" Value="$(_WorkloadUsesMobileSDKOnly)" />
<WorkloadPublishProperties Include="UsesOtherMobileSDK" Value="$(_WorkloadUsesOther)" />
<WorkloadPublishProperties Include="MonoAOT" Value="$(_WorkloadUsesMonoAOT)" />
<WorkloadPublishProperties Include="NativeAOT" Value="$(_WorkloadUsesNativeAOT)" />
<WorkloadPublishProperties Include="Interp" Value="$(_WorkloadUsesInterpreter)" />
<WorkloadPublishProperties Include="LibraryMode" Value="$(_WorkloadUsesLibraryMode)" />
<WorkloadPublishProperties Include="HybridGlobalization" Value="$(HybridGlobalization)" />
<WorkloadPublishProperties Include="ResolvedRuntimePack" Value="$(_MonoWorkloadRuntimePackPackageVersion)" />
<WorkloadPublishProperties Include="StripILAfterAOT" Value="$(_WorkloadUsesStripILAfterAOT)" />
</ItemGroup>
<AllowEmptyTelemetry EventName="WorkloadPublishProperties" EventData="@(WorkloadPublishProperties)" />
</Target>
<Target Name="_WorkloadGatherTelemetryData">
<PropertyGroup>
<_WorkloadUsesBlazorWasm>$(UsingMicrosoftNETSdkBlazorWebAssembly)</_WorkloadUsesBlazorWasm>
<_WorkloadUsesWasmSDK>$(UsingMicrosoftNETSdkWebAssembly)</_WorkloadUsesWasmSDK>
<_WorkloadUsesMonoAOT>$(RunAOTCompilation)</_WorkloadUsesMonoAOT>
<!-- _RunAotCompiler is defined in xamarin ios targets -->
<_WorkloadUsesMonoAOT Condition="'$(_WorkloadUsesMonoAOT)' == '' and '$(PublishAot)' != 'true' and ('$(TargetPlatformIdentifier)' == 'maccatalyst' or '$(TargetPlatformIdentifier)' == 'ios' or '$(TargetPlatformIdentifier)' == 'tvos')">$(_RunAotCompiler)</_WorkloadUsesMonoAOT>
<_WorkloadUsesNativeAOT>$(PublishAot)</_WorkloadUsesNativeAOT>
<_WorkloadUsesInterpreter>$(MonoForceInterpreter)</_WorkloadUsesInterpreter>
<_WorkloadUsesInterpreter Condition="'$(_WorkloadUsesInterpreter)' == '' and '$(UseInterpreter)' == 'true'">true</_WorkloadUsesInterpreter>
<_WorkloadUsesInterpreter Condition="'$(_WorkloadUsesInterpreter)' == '' and '$(RunAOTCompilation)' != 'true' and ('$(_WorkloadUsesBlazorWasm)' == 'true' or '$(_WorkloadUsesWasmSDK)' == 'true')">true</_WorkloadUsesInterpreter>
<_WorkloadUsesLibraryMode Condition="'$(NativeLib)' != '' and ('$(_WorkloadUsesMonoAOT)' == 'true' or '$(_WorkloadUsesNativeAOT)' == 'true')">true</_WorkloadUsesLibraryMode>
<_WorkloadUsesStripILAfterAOT Condition="'$(WasmStripILAfterAOT)' == 'true' or '$(AndroidStripILAfterAOT)' == 'true'">true</_WorkloadUsesStripILAfterAOT>
</PropertyGroup>
<PropertyGroup>
<_WorkloadUsesOther Condition="'$([System.IO.Path]::GetFileName(&quot;%(ReferencePath.Identity)&quot;).ToLowerInvariant())' == 'avalonia.dll'">true</_WorkloadUsesOther>
<_WorkloadUsesOther Condition="'$([System.IO.Path]::GetFileName(&quot;%(ReferencePath.Identity)&quot;).ToLowerInvariant())' == 'uno.dll'">true</_WorkloadUsesOther>
<_WorkloadUsesMobileSDKOnly Condition="'$(RuntimeIdentifier)' != 'browser-wasm' and '$(UseMaui)' != 'true' and '$(_WorkloadUsesOther)' != 'true'">true</_WorkloadUsesMobileSDKOnly>
</PropertyGroup>
</Target>
</Project>

View File

@@ -0,0 +1,5 @@
{
"workloads/wasm-tools/description": "Nástroje pro sestavení .NET WebAssembly",
"workloads/wasm-experimental/description": "Experimentální nástroje .NET WebAssembly",
"workloads/runtimes-windows/description": "Runtime balíčky pro Windows"
}

View File

@@ -0,0 +1,5 @@
{
"workloads/wasm-tools/description": ".NET WebAssembly-Buildtools",
"workloads/wasm-experimental/description": "Experimentelle .NET WebAssembly-Tools",
"workloads/runtimes-windows/description": "Windows-Runtime-Pakete"
}

View File

@@ -0,0 +1,5 @@
{
"workloads/wasm-tools/description": ".NET WebAssembly build tools",
"workloads/wasm-experimental/description": ".NET WebAssembly experimental tooling",
"workloads/runtimes-windows/description": "Windows Runtime Packs"
}

View File

@@ -0,0 +1,5 @@
{
"workloads/wasm-tools/description": "Herramientas de compilación de WebAssembly de .NET",
"workloads/wasm-experimental/description": "Herramientas experimentales .NET WebAssembly",
"workloads/runtimes-windows/description": "Paquetes de tiempo de ejecución de Windows"
}

View File

@@ -0,0 +1,5 @@
{
"workloads/wasm-tools/description": "Outils de build .NET WebAssembly",
"workloads/wasm-experimental/description": "Outils expérimentaux .NET WebAssembly",
"workloads/runtimes-windows/description": "Packs d'exécution Windows"
}

View File

@@ -0,0 +1,5 @@
{
"workloads/wasm-tools/description": "Strumenti di compilazione WebAssembly .NET",
"workloads/wasm-experimental/description": "Strumenti sperimentali di .NET WebAssembly",
"workloads/runtimes-windows/description": "Pacchetti di Windows Runtime"
}

View File

@@ -0,0 +1,5 @@
{
"workloads/wasm-tools/description": ".NET WebAssembly ビルドツール",
"workloads/wasm-experimental/description": ".NET WebAssembly 実験的ツール",
"workloads/runtimes-windows/description": "Windows ランタイム パック"
}

View File

@@ -0,0 +1,5 @@
{
"workloads/wasm-tools/description": ".NET WebAssembly 빌드 도구",
"workloads/wasm-experimental/description": ".NET WebAssembly 실험 도구",
"workloads/runtimes-windows/description": "Windows 런타임 팩"
}

View File

@@ -0,0 +1,5 @@
{
"workloads/wasm-tools/description": "Narzędzia kompilacji zestawu WebAssembly platformy .NET",
"workloads/wasm-experimental/description": "Eksperymentalne narzędzia .NET WebAssembly",
"workloads/runtimes-windows/description": "Pakiety środowiska wykonawczego systemu Windows"
}

View File

@@ -0,0 +1,5 @@
{
"workloads/wasm-tools/description": "Ferramentas de build para .NET WebAssembly",
"workloads/wasm-experimental/description": "Ferramentas experimentais para .NET WebAssembly",
"workloads/runtimes-windows/description": "Pacotes de tempo de execução do Windows"
}

View File

@@ -0,0 +1,5 @@
{
"workloads/wasm-tools/description": "Средства сборки WebAssembly .NET",
"workloads/wasm-experimental/description": "Экспериментальный инструментарий .NET WebAssembly",
"workloads/runtimes-windows/description": "Пакеты среды выполнения Windows"
}

View File

@@ -0,0 +1,5 @@
{
"workloads/wasm-tools/description": ".NET WebAssembly derleme araçları",
"workloads/wasm-experimental/description": ".NET WebAssembly deneysel araçlar",
"workloads/runtimes-windows/description": "Windows Çalışma Zamanı Paketleri"
}

View File

@@ -0,0 +1,5 @@
{
"workloads/wasm-tools/description": ".NET WebAssembly 生成工具",
"workloads/wasm-experimental/description": ".NET WebAssembly 实验工具",
"workloads/runtimes-windows/description": "Windows 运行时包"
}

View File

@@ -0,0 +1,5 @@
{
"workloads/wasm-tools/description": ".NET WebAssembly 組建工具",
"workloads/wasm-experimental/description": ".NET WebAssembly 實驗工具",
"workloads/runtimes-windows/description": "Windows 運行時包"
}