49 lines
2.8 KiB
XML
49 lines
2.8 KiB
XML
<Project Sdk="Microsoft.NET.Sdk">
|
|
|
|
<!-- nucleic-brokerd (docs/WINDOWS_PORT.md §2.3, §3.3): the C# child process of
|
|
nucleic-hostd that owns every Microsoft.WSL.Containers (wslc) call, exposed to Swift
|
|
as NDJSON JSON-RPC 2.0 over stdio.
|
|
|
|
The wslc WinRT surface is isolated behind IWslc, and the REAL facade is compiled only
|
|
when -p:UseWslc=true (a Windows machine with the preview NuGet reachable): the API is
|
|
public preview with breaking changes expected, and the M1 spike validates it. Every
|
|
other build — Linux CI, the fake-backed unit tests — compiles the portable core plus
|
|
an "unavailable" facade, so broker logic and RPC surface are testable everywhere. -->
|
|
<PropertyGroup>
|
|
<OutputType>Exe</OutputType>
|
|
<AssemblyName>nucleic-brokerd</AssemblyName>
|
|
<RootNamespace>NucleicBroker</RootNamespace>
|
|
</PropertyGroup>
|
|
|
|
<PropertyGroup Condition="'$(UseWslc)' == 'true'">
|
|
<!-- 26100, NOT the 19041 the package's lib folder advertises. Those disagree, and the
|
|
binary wins: `lib/net8.0-windows10.0.19041.0/wslcsdkcs.dll` is itself compiled against
|
|
Microsoft.Windows.SDK.NET 10.0.26100.79, so a 19041 targeting pack cannot load it —
|
|
`error CS1705: ... uses 'Microsoft.Windows.SDK.NET, Version=10.0.26100.79' which has a
|
|
higher version than referenced assembly ... 10.0.19041.38`. Matching the folder name
|
|
looks right and does not build. -->
|
|
<TargetFramework>net9.0-windows10.0.26100.0</TargetFramework>
|
|
<!-- The TFM alone selects a targeting pack by MAJOR revision only, and the .NET 9 SDK's
|
|
default for 26100 is 10.0.26100.38 — still below the .79 wslcsdkcs was built against,
|
|
so CS1705 survives the TFM bump. This pins the projection itself. .80 rather than the
|
|
.79 the error names because .79 was never published to nuget.org; the constraint is a
|
|
floor, so the next one up satisfies it. Raise it, never lower it, if a package bump
|
|
moves the floor again. -->
|
|
<WindowsSdkPackageVersion>10.0.26100.80</WindowsSdkPackageVersion>
|
|
<DefineConstants>$(DefineConstants);USE_WSLC</DefineConstants>
|
|
</PropertyGroup>
|
|
|
|
<ItemGroup Condition="'$(UseWslc)' != 'true'">
|
|
<Compile Remove="Wslc/**/*.cs" />
|
|
</ItemGroup>
|
|
|
|
<ItemGroup Condition="'$(UseWslc)' == 'true'">
|
|
<!-- Version-pinned (docs/WINDOWS_PORT.md §15): bump deliberately per release, never
|
|
float — the API is preview and breaking changes must be absorbed behind IWslc.
|
|
2.9.3 is the ONLY version on nuget.org and it tracks WSL's own version scheme, not
|
|
a `0.1.0-preview.N` one; the invented pin this replaced could never have restored. -->
|
|
<PackageReference Include="Microsoft.WSL.Containers" Version="[2.9.3]" />
|
|
</ItemGroup>
|
|
|
|
</Project>
|