-
Notifications
You must be signed in to change notification settings - Fork 12
Expand file tree
/
Copy pathReactor.csproj
More file actions
191 lines (181 loc) · 12.2 KB
/
Reactor.csproj
File metadata and controls
191 lines (181 loc) · 12.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net10.0-windows10.0.22621.0</TargetFramework>
<RootNamespace>Microsoft.UI.Reactor</RootNamespace>
<AssemblyName>Reactor</AssemblyName>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<UseWinUI>true</UseWinUI>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<DisableEmbeddedXbf>false</DisableEmbeddedXbf>
<!-- Override Directory.Build.props (true) — this library should not bundle
the WinUI runtime; the consuming executable controls self-containedness. -->
<WindowsAppSDKSelfContained>false</WindowsAppSDKSelfContained>
<TargetPlatformMinVersion>10.0.17763.0</TargetPlatformMinVersion>
<SupportedOSPlatformVersion>10.0.17763.0</SupportedOSPlatformVersion>
<!-- Explicit platforms so external consumers (Pix, samples, etc.) that
drive ProjectReference handshakes with Release|ARM64 or Debug|x64
configurations can resolve a matching Reactor build. AnyCPU stays
the default for `dotnet pack`. Without this, VS's solution-level
project-ref mapping falls back to AnyCPU on ARM64 hosts and the
expected `bin/ARM64/Release/.../Reactor.dll` never appears,
leaving downstream projects unable to bind the assembly. Mirrors
the same declaration in Reactor.Tests.csproj. -->
<Platforms>AnyCPU;x64;ARM64</Platforms>
</PropertyGroup>
<!-- ═══════════════════════════════════════════════════════════════════
NuGet packaging — see docs/specs/022-packaging-and-distribution.md.
Version is supplied by the release workflow (-p:Version=...) from
the git tag; the default below is for local `dotnet pack` smoke runs.
═══════════════════════════════════════════════════════════════════ -->
<PropertyGroup>
<IsPackable>true</IsPackable>
<PackageId>Microsoft.UI.Reactor</PackageId>
<Version Condition="'$(Version)' == ''">0.0.0-local</Version>
<Authors>Microsoft</Authors>
<Company>Microsoft</Company>
<Description>Functional, declarative UI framework for WinUI 3.</Description>
<PackageProjectUrl>https://github.com/microsoft/microsoft-ui-reactor</PackageProjectUrl>
<RepositoryUrl>https://github.com/microsoft/microsoft-ui-reactor</RepositoryUrl>
<RepositoryType>git</RepositoryType>
<PackageLicenseFile>LICENSE</PackageLicenseFile>
<IncludeSymbols>true</IncludeSymbols>
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<!-- Suppress missing-XML-doc warnings on public API. The .xml doc file
still ships whatever comments do exist; we just don't gate the
build on documenting every public member. -->
<!-- Spec 047 §14 Phase 1 (1.3 / 1.4): suppress the REACTOR_V1_PREVIEW
Experimental diagnostic in-tree so the engine itself can keep
calling the promoted helpers. External / sample projects do NOT
suppress it — they see the provisional-surface signal. -->
<NoWarn>$(NoWarn);CS1591;REACTOR_V1_PREVIEW</NoWarn>
</PropertyGroup>
<ItemGroup>
<InternalsVisibleTo Include="Reactor.Tests" />
<InternalsVisibleTo Include="Reactor.AppTests.Host" />
<InternalsVisibleTo Include="Reactor.Fuzz" />
<!-- Spec 047 §14 Phase 2 (Q1 spike) — PerfBench.ControlModel needs the
internal Reconciler(registerBuiltinHandlers:false) ctor to wire its
BenchVariant.ReactorDescriptors path; goes away when the surface
lock after Phase 2 promotes (or rejects) the descriptor model. -->
<InternalsVisibleTo Include="PerfBench.ControlModel" />
<!-- Spec 045 §2.19: the Phase-1 WinUI.Dock XAML wrapper
(src/Reactor.Docking.Xaml/) and its vendored WinUI.Dock
dependency were removed at the §2.29 review gate. The docking
subsystem now lives entirely in this assembly under
src/Reactor/Docking/. -->
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.WindowsAppSDK" Version="$(WindowsAppSDKVersion)" />
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="9.0.0" />
<PackageReference Include="System.Drawing.Common" Version="9.0.4" />
<PackageReference Include="MessageFormat" Version="8.0.0" />
<!-- In-process ETW consumer for the layout-cost overlay (spec 032). Pure managed;
no native dependencies. Only loaded when ReactorFeatureFlags.ShowLayoutCost is
flipped on.
PrivateAssets=none (default) so consuming projects (samples, tests) get the
runtime assemblies. -->
<PackageReference Include="Microsoft.Diagnostics.Tracing.TraceEvent" Version="3.1.16">
<GeneratePathProperty>true</GeneratePathProperty>
</PackageReference>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Reactor.Localization.Generator\Reactor.Localization.Generator.csproj"
OutputItemType="Analyzer"
ReferenceOutputAssembly="false" />
<ProjectReference Include="..\Reactor.Analyzers\Reactor.Analyzers.csproj"
ReferenceOutputAssembly="false" />
<!-- Reactor.Analyzers is not referenced as an analyzer here — we don't want its
rules running on the framework itself, only on consumer code, but it's a dependency
in order to pack the analyzer's output -->
</ItemGroup>
<!-- Bundle the analyzer + source-generator DLLs into the framework package
so consumers get them automatically. See spec 022 §5. The analyzer
projects are not ProjectReferences (we don't want their rules running
against the framework itself), so their build outputs must already
exist before pack — verified by the AssertAnalyzerDllsExist target
below. -->
<!-- Resolve the per-build output dir of the analyzer ProjectReferences.
MSBuild propagates $(Platform) to transitive builds: with no
-p:Platform (e.g. plain `dotnet build`), the analyzer lands at
bin\$(Configuration)\netstandard2.0\; with -p:Platform=x64/ARM64
(e.g. `mur pack-local`), it lands at bin\$(Platform)\$(Configuration)\
netstandard2.0\ because <AppendPlatformToOutputPath> defaults to
true. Compute the path accordingly so pack finds the DLL in either
layout — without this, pack-local on a clean machine fails with
NU3168/CS2012 because the platform-less path has nothing in it. -->
<PropertyGroup>
<_ReactorAnalyzerBinDir Condition="'$(Platform)' == '' or '$(Platform)' == 'AnyCPU'">bin\$(Configuration)\netstandard2.0</_ReactorAnalyzerBinDir>
<_ReactorAnalyzerBinDir Condition="'$(_ReactorAnalyzerBinDir)' == ''">bin\$(Platform)\$(Configuration)\netstandard2.0</_ReactorAnalyzerBinDir>
</PropertyGroup>
<ItemGroup>
<None Include="..\Reactor.Analyzers\$(_ReactorAnalyzerBinDir)\Reactor.Analyzers.dll"
Pack="true" PackagePath="analyzers/dotnet/cs" Visible="false" />
<None Include="..\Reactor.Localization.Generator\$(_ReactorAnalyzerBinDir)\Reactor.Localization.Generator.dll"
Pack="true" PackagePath="analyzers/dotnet/cs" Visible="false" />
<None Include="..\..\LICENSE" Pack="true" PackagePath="" Visible="false" />
<!-- Agent kit packed into the NuGet at `agentkit/`: SKILL.md, every
skills/*.md sub-skill, the recipes folder, and the generated
signatures index. Mirrors the source-tree layout. Discoverable from
a consumer machine via the `mur` CLI commands or directly at
%USERPROFILE%\.nuget\packages\microsoft.ui.reactor\$version$\agentkit\.
See SKILL.md for the layout description. -->
<None Include="..\..\SKILL.md"
Pack="true" PackagePath="agentkit/" Visible="false"
Condition="Exists('..\..\SKILL.md')" />
<None Include="..\..\skills\reactor.api.txt"
Pack="true" PackagePath="agentkit/" Visible="false"
Condition="Exists('..\..\skills\reactor.api.txt')" />
<None Include="..\..\skills\*.md"
Pack="true" PackagePath="agentkit/skills/" Visible="false" />
<None Include="..\..\skills\recipes\*.md;..\..\skills\recipes\*.cs"
Pack="true" PackagePath="agentkit/skills/recipes/" Visible="false" />
<!-- Plugin format (Copilot CLI / Claude). Preferred path for agent loading.
Mirrors the source layout under agentkit/plugins/reactor/. -->
<None Include="..\..\plugins\reactor\.claude-plugin\plugin.json"
Pack="true" PackagePath="agentkit/plugins/reactor/.claude-plugin/" Visible="false" />
<None Include="..\..\plugins\reactor\plugin.json"
Pack="true" PackagePath="agentkit/plugins/reactor/" Visible="false" />
<None Include="..\..\plugins\reactor\agents\*.md"
Pack="true" PackagePath="agentkit/plugins/reactor/agents/" Visible="false" />
<None Include="..\..\plugins\reactor\skills\reactor-getting-started\*.md"
Pack="true" PackagePath="agentkit/plugins/reactor/skills/reactor-getting-started/" Visible="false" />
<None Include="..\..\plugins\reactor\skills\reactor-dsl\*.md"
Pack="true" PackagePath="agentkit/plugins/reactor/skills/reactor-dsl/" Visible="false" />
<None Include="..\..\plugins\reactor\skills\reactor-dsl\references\*"
Pack="true" PackagePath="agentkit/plugins/reactor/skills/reactor-dsl/references/" Visible="false" />
<None Include="..\..\plugins\reactor\skills\reactor-build-and-check\*.md"
Pack="true" PackagePath="agentkit/plugins/reactor/skills/reactor-build-and-check/" Visible="false" />
<None Include="..\..\plugins\reactor\skills\reactor-async\*.md"
Pack="true" PackagePath="agentkit/plugins/reactor/skills/reactor-async/" Visible="false" />
<None Include="..\..\plugins\reactor\skills\reactor-design\*.md"
Pack="true" PackagePath="agentkit/plugins/reactor/skills/reactor-design/" Visible="false" />
<None Include="..\..\plugins\reactor\skills\reactor-forms\*.md"
Pack="true" PackagePath="agentkit/plugins/reactor/skills/reactor-forms/" Visible="false" />
<None Include="..\..\plugins\reactor\skills\reactor-navigation\*.md"
Pack="true" PackagePath="agentkit/plugins/reactor/skills/reactor-navigation/" Visible="false" />
<None Include="..\..\plugins\reactor\skills\reactor-input\*.md"
Pack="true" PackagePath="agentkit/plugins/reactor/skills/reactor-input/" Visible="false" />
<None Include="..\..\plugins\reactor\skills\reactor-charts\*.md"
Pack="true" PackagePath="agentkit/plugins/reactor/skills/reactor-charts/" Visible="false" />
<None Include="..\..\plugins\reactor\skills\reactor-commanding\*.md"
Pack="true" PackagePath="agentkit/plugins/reactor/skills/reactor-commanding/" Visible="false" />
<None Include="..\..\plugins\reactor\skills\reactor-devtools\*.md"
Pack="true" PackagePath="agentkit/plugins/reactor/skills/reactor-devtools/" Visible="false" />
<None Include="..\..\plugins\reactor\skills\reactor-recipes\*.md"
Pack="true" PackagePath="agentkit/plugins/reactor/skills/reactor-recipes/" Visible="false" />
<None Include="..\..\plugins\reactor\skills\reactor-recipes\references\*"
Pack="true" PackagePath="agentkit/plugins/reactor/skills/reactor-recipes/references/" Visible="false" />
</ItemGroup>
<!-- ═══════════════════════════════════════════════════════════════════
Localization — .resw files fed to the source generator
═══════════════════════════════════════════════════════════════════ -->
<PropertyGroup>
<ReactorLocDefaultLocale Condition="'$(ReactorLocDefaultLocale)' == ''">en-US</ReactorLocDefaultLocale>
<ReactorLocStringsPath Condition="'$(ReactorLocStringsPath)' == ''">Strings/</ReactorLocStringsPath>
</PropertyGroup>
<ItemGroup>
<AdditionalFiles Include="$(ReactorLocStringsPath)**/*.resw" Condition="Exists('$(ReactorLocStringsPath)')" />
</ItemGroup>
</Project>