The net8-era wasm workload (Microsoft.NET.Runtime.WebAssembly.Sdk 8.0.x, auto-imported for RID browser-wasm) treats every browser-wasm project as a wasm app: it forces OutputType=Exe after project evaluation (CS5001 for a classlib) and hooks its app-bundle build after Build, which errors because a library has no assemblies to bundle. Opt Raylib-cs out via DisableAutoWasmBuildApp (props time, before the workload defaults its trigger) and pin OutputType back to Library in Directory.Build.targets (evaluated after the workload props, so the assignment wins). net10's wasm SDK needs neither workaround.
26 lines
1.6 KiB
XML
26 lines
1.6 KiB
XML
<Project>
|
|
<!-- The net8-era wasm workload (Microsoft.NET.Runtime.WebAssembly.Sdk 8.0.x, imported for
|
|
RID browser-wasm) unconditionally sets OutputType=Exe after project evaluation, which
|
|
breaks the net8.0 classlib build with CS5001. Pin it back to Library here: this file is
|
|
imported after the workload props, so the assignment wins. (net10's wasm SDK leaves
|
|
OutputType alone; Examples stays an Exe and is excluded.) -->
|
|
<PropertyGroup Condition="'$(MSBuildProjectName)' == 'Raylib-cs' And '$(RuntimeIdentifier)' == 'browser-wasm'">
|
|
<OutputType>Library</OutputType>
|
|
</PropertyGroup>
|
|
|
|
<!-- Raylib-cs 8.1.0 is not on nuget.org yet; pack locally so Examples and tests resolve the package with native runtimes. -->
|
|
<Target Name="_EnsureLocalRaylibCsPackage"
|
|
BeforeTargets="Restore"
|
|
Condition="'$(MSBuildProjectName)' != 'Raylib-cs' And Exists('$(MSBuildThisFileDirectory)Raylib-cs/Raylib-cs.csproj')">
|
|
<PropertyGroup>
|
|
<_LocalNuGetDir>$(MSBuildThisFileDirectory)nuget</_LocalNuGetDir>
|
|
<_LocalRaylibCsNupkg>$(_LocalNuGetDir)/Raylib-cs.$(RaylibCsVersion).nupkg</_LocalRaylibCsNupkg>
|
|
</PropertyGroup>
|
|
<MakeDir Directories="$(_LocalNuGetDir)" Condition="!Exists('$(_LocalNuGetDir)')"/>
|
|
<MSBuild Projects="$(MSBuildThisFileDirectory)Raylib-cs/Raylib-cs.csproj"
|
|
Targets="Restore;Pack"
|
|
Properties="Configuration=Release;PackageOutputPath=$(_LocalNuGetDir)"
|
|
RemoveProperties="RuntimeIdentifier;RuntimeIdentifiers;SelfContained;_IsPublishing"
|
|
Condition="!Exists('$(_LocalRaylibCsNupkg)') Or '$(ForceRaylibCsPack)' == 'true'"/>
|
|
</Target>
|
|
</Project>
|