-
Notifications
You must be signed in to change notification settings - Fork 7
Expand file tree
/
Copy pathCraft.csproj
More file actions
91 lines (79 loc) · 4.16 KB
/
Copy pathCraft.csproj
File metadata and controls
91 lines (79 loc) · 4.16 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
<Project Sdk="Microsoft.NET.Sdk.Web">
<!-- LangVersion / Nullable / ImplicitUsings / analyzer settings live in Directory.Build.props. -->
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<RootNamespace>Craft</RootNamespace>
</PropertyGroup>
<ItemGroup>
<!--
Microsoft.PowerShell.SDK MUST stay on the 7.4.x line: 7.4 is the PowerShell release built on
.NET 8, 7.5 is .NET 9 and 7.6 is .NET 10. Moving off 7.4 means moving TargetFramework with it.
-->
<PackageReference Include="Microsoft.PowerShell.SDK" Version="7.4.18" />
<PackageReference Include="Cronos" Version="0.8.4" />
<PackageReference Include="Azure.Data.Tables" Version="12.11.0" />
</ItemGroup>
<!--
Transitive security pins. Both of these arrive several levels down from the packages above, so the
only way to move them is to reference them directly — a direct reference wins over any transitive
version. Review these whenever the parent packages are bumped: once the parent pulls a version at
or above the pin, the pin is redundant and should be deleted rather than left to rot.
System.Security.Cryptography.Xml 8.0.3 -> 8.0.4
via Microsoft.PowerShell.SDK -> Microsoft.Windows.Compatibility.
GHSA-g8r8-53c2-pm3f, GHSA-8q5v-6pqq-x66h, GHSA-cvvh-rhrc-wg4q, GHSA-23rf-6693-g89p,
GHSA-mmjf-rqrv-855v (all High).
System.Text.Json 6.0.9 -> 8.0.6
via Azure.Data.Tables -> Azure.Core -> System.ClientModel.
GHSA-8g4q-xg66-9fp4 (High).
-->
<ItemGroup>
<PackageReference Include="System.Security.Cryptography.Xml" Version="8.0.4" />
<PackageReference Include="System.Text.Json" Version="8.0.6" />
</ItemGroup>
<PropertyGroup>
<EnableDefaultContentItems>false</EnableDefaultContentItems>
</PropertyGroup>
<!--
Craft.csproj lives at the repo root, so the SDK's default glob is `**/*.cs` from here down — which
happily swallows every other project in the tree. Without this, tests/Craft.Tests/*.cs compiles into
Craft.dll itself and fails with confusing errors attributed to Craft.csproj.
Any new sibling project directory must be excluded here too (or the app should move under src/).
-->
<ItemGroup>
<Compile Remove="tests/**" />
<Compile Remove="perf-harness/**" />
<None Remove="tests/**" />
<None Remove="perf-harness/**" />
</ItemGroup>
<!-- Include runtime content in published output -->
<ItemGroup>
<!--
CRAFT ships NO appsettings.json of its own. Every setting's default lives on the C# property in
Services/CraftSettings.cs, so a shipped file could only ever restate them — and a stale restatement
that silently overrides a changed default is worse than no file at all. The annotated reference
lives in appsettings.example.jsonc (documentation, deliberately not matched by this glob and
deliberately not valid strict JSON — it has comments).
This glob still fires for a file the *downstream app* or a local developer drops in, which is the
supported way to configure CRAFT (alongside App__* environment variables).
-->
<Content Include="appsettings*.json" CopyToOutputDirectory="PreserveNewest" />
<Content Include="Runtime\**\*.ps1" CopyToOutputDirectory="PreserveNewest" LinkBase="Runtime" />
</ItemGroup>
<!--
First-run setup wizard pages. Kept as real .html files so tooling can parse them, compiled into
Craft.dll so they travel with the runtime and cannot be replaced by a downstream image.
LogicalName is explicit so the lookup key in Services/SetupPages.cs does not depend on folder
layout — moving these files is then a rename, not a silent runtime break.
-->
<ItemGroup>
<EmbeddedResource Include="Services\Setup\*.html" LogicalName="Craft.Setup.%(Filename)%(Extension)" />
</ItemGroup>
<!--
So the test project can reach helpers that are correctly internal to the host — the endpoint
dispatch/discovery policies (ExecuteAsync, SelectHandler, BuildScheduledTasks) are authorization
plumbing worth testing directly but have no business being public API.
-->
<ItemGroup>
<InternalsVisibleTo Include="Craft.Tests" />
</ItemGroup>
</Project>