-
Notifications
You must be signed in to change notification settings - Fork 312
Expand file tree
/
Copy pathDirectory.Build.props
More file actions
134 lines (114 loc) · 6.75 KB
/
Copy pathDirectory.Build.props
File metadata and controls
134 lines (114 loc) · 6.75 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
<Project>
<Import Project="Sdk.props" Sdk="Microsoft.DotNet.Arcade.Sdk" />
<Import Project="$(RepositoryEngineeringDir)Analyzers.props" />
<PropertyGroup>
<IsSourceProject Condition="$([MSBuild]::MakeRelative($(RepoRoot), $(MSBuildProjectFullPath)).StartsWith('src/')) OR $([MSBuild]::MakeRelative($(RepoRoot), $(MSBuildProjectFullPath)).StartsWith('src\'))">true</IsSourceProject>
<!-- We use Resx generator from Arcade. Enabling the one from MSBuild.Sdk.Extras (enabled by default) breaks Arcade -->
<!-- So we should disable it. -->
<ExtrasEnableEmbeddedResourceCodeGenerator>false</ExtrasEnableEmbeddedResourceCodeGenerator>
</PropertyGroup>
<!-- Language configuration -->
<PropertyGroup>
<!-- default to allowing all language features -->
<LangVersion>preview</LangVersion>
<ImplicitUsings>enable</ImplicitUsings>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<Nullable>enable</Nullable>
<ReportAnalyzer>true</ReportAnalyzer>
</PropertyGroup>
<!-- The TFMs to build and test against. -->
<PropertyGroup>
<SkipUapTargetFramework Condition="'$(MutationTesting)' == 'true'">true</SkipUapTargetFramework>
<!-- The windows SDK version of UWP, Modern UWP and WinUI could be aligned -->
<!--
$(UwpMinimum) (uap10.0.16299) requires desktop msbuild.exe because
MSBuild.Sdk.Extras Workarounds.targets refuses to build full-MSBuild targets
under 'dotnet msbuild'. The CodeQL pipeline runs with -msbuildEngine dotnet
to work around https://github.com/dotnet/msbuild/issues/13739, so it sets
$(SkipUapTargetFramework)=true to opt out of the UAP target. UAP-specific
code paths are still source-scanned via the other TFMs that the affected
projects multi-target (net462, net8.0, net9.0).
-->
<UwpMinimum Condition=" '$(SkipUapTargetFramework)' != 'true' ">uap10.0.16299</UwpMinimum>
<ModernUwpMinimum>net9.0-windows10.0.17763.0</ModernUwpMinimum>
<WinUiMinimum>net8.0-windows10.0.18362.0</WinUiMinimum>
<SupportedNetFrameworks>net8.0;net9.0</SupportedNetFrameworks>
</PropertyGroup>
<!-- Build config -->
<PropertyGroup>
<!-- Prevent warning about deprecated target frameworks -->
<CheckEolTargetFramework>false</CheckEolTargetFramework>
<!-- PDB -->
<DebugSymbols>true</DebugSymbols>
<!--
Let Arcade's ProjectDefaults.props decide the DebugType: 'portable' for official builds
(so a separate PDB is emitted, which Arcade's publishing pipeline pushes to the symbol
servers) and 'embedded' for local/non-official builds. This matches dotnet/roslyn and
dotnet/sdk. We intentionally do NOT force 'embedded' here, which would bake symbols into
shipped assemblies and prevent symbols from being published to the symbol servers.
-->
<!-- Needs to be part of the building of prod code -->
<MoqPublicKey>0024000004800000940000000602000000240000525341310004000001000100c547cac37abd99c8db225ef2f6c8a3602f3b3606cc9891605d02baa56104f4cfc0734aa39b93bf7852f7d9266654753cc297e7d2edfe0bac1cdcf9f717241550e0a7b191195b7667bb4f64bcb8e2121380fd1d9d46ad2d92d2d15605093924cceaf74c4861eff62abf69b9291ed0a340e113be11e6a7d3113e92484cf7045cc7</MoqPublicKey>
<!-- Experimental test API usages are allowed inside this solution -->
<NoWarn>$(NoWarn);TPEXP</NoWarn>
<!-- Infrastructure APIs (marked [Experimental("TPINTERNAL")]) are public only so first-party
extensions can consume them across the assembly boundary. External consumers still hit the
diagnostic; inside this solution the usage is expected, so suppress it centrally. -->
<NoWarn>$(NoWarn);TPINTERNAL</NoWarn>
<!-- netfx and netstandard don't have nullability info so the IDE0370 warning should be suppressed -->
<NoWarn Condition="'$(TargetFramework)' == 'netstandard2.0' OR $(TargetFramework.StartsWith('net4')) OR '$(TargetFramework)' == '$(UwpMinimum)'">$(NoWarn);IDE0370</NoWarn>
<!-- Only upgrade NuGetAudit warnings to errors for official builds. -->
<WarningsNotAsErrors Condition="'$(OfficialBuild)' != 'true'">$(WarningsNotAsErrors);NU1901;NU1902;NU1903;NU1904</WarningsNotAsErrors>
</PropertyGroup>
<!-- Versioning -->
<PropertyGroup>
<MicrosoftTestingExtensionsCtrfReportPreReleaseVersionLabel>alpha</MicrosoftTestingExtensionsCtrfReportPreReleaseVersionLabel>
<!--
This is an early preview package, keep 1.0.0-alpha or similar suffix even in official builds.
-->
<MicrosoftTestingExtensionsCtrfReportVersionPrefix>1.0.0</MicrosoftTestingExtensionsCtrfReportVersionPrefix>
<MicrosoftTestingExtensionsJUnitReportPreReleaseVersionLabel>alpha</MicrosoftTestingExtensionsJUnitReportPreReleaseVersionLabel>
<!--
This is an early preview package, keep 1.0.0-alpha or similar suffix even in official builds.
-->
<MicrosoftTestingExtensionsJUnitReportVersionPrefix>1.0.0</MicrosoftTestingExtensionsJUnitReportVersionPrefix>
<MicrosoftTestingExtensionsVideoRecorderPreReleaseVersionLabel>alpha</MicrosoftTestingExtensionsVideoRecorderPreReleaseVersionLabel>
<!--
This is an early preview package, keep 1.0.0-alpha or similar suffix even in official builds.
-->
<MicrosoftTestingExtensionsVideoRecorderVersionPrefix>1.0.0</MicrosoftTestingExtensionsVideoRecorderVersionPrefix>
</PropertyGroup>
<!-- Pack config -->
<PropertyGroup>
<Copyright>$(CopyrightMicrosoft)</Copyright>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
</PropertyGroup>
<!-- Sign config -->
<PropertyGroup>
<StrongNameKeyId>Microsoft</StrongNameKeyId>
<!-- Generated test applications bind to the Microsoft-signed platform assembly. -->
<StrongNameKeyId Condition="'$(MutationTesting)' == 'true' and '$(MSBuildProjectName)' != 'Microsoft.Testing.Platform'">Open</StrongNameKeyId>
<VsPublicKey Condition="'$(MutationTesting)' == 'true'">$(OpenPublicKey)</VsPublicKey>
</PropertyGroup>
<!-- Test config -->
<PropertyGroup>
<!-- Needs to be setup globally so that arcade doesn't bring xUnit to playground and other test projects -->
<TestRunnerName>Microsoft.Testing.Platform</TestRunnerName>
</PropertyGroup>
<ItemGroup>
<Using Include="System.Collections" />
<Using Include="System.Collections.Concurrent" />
<Using Include="System.Globalization" />
<Using Include="System.Diagnostics" />
<Using Include="System.Diagnostics.CodeAnalysis" />
<Using Include="System.Reflection" />
<Using Include="System.Runtime.CompilerServices" />
<Using Include="System.Runtime.InteropServices" />
<Using Include="System.Runtime.Versioning" />
<Using Include="System.Text" />
<Using Include="System.Text.RegularExpressions" />
<Using Include="System.Xml" />
<Using Include="System.Xml.Linq" />
<Using Include="System.Xml.XPath" />
</ItemGroup>
</Project>