-
Notifications
You must be signed in to change notification settings - Fork 308
Expand file tree
/
Copy pathDirectory.Build.props
More file actions
177 lines (147 loc) · 9.36 KB
/
Copy pathDirectory.Build.props
File metadata and controls
177 lines (147 loc) · 9.36 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
<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>
<!-- MSBuildCache only supports clean, Windows graph builds. Keep it opt-in so regular and incremental builds are unchanged. -->
<PropertyGroup>
<MSBuildCacheEnabled Condition="'$(MSBuildCacheEnabled)' == ''">false</MSBuildCacheEnabled>
</PropertyGroup>
<PropertyGroup Condition="'$(MSBuildCacheEnabled)' == 'true'">
<!-- Change this value to invalidate all existing testfx cache entries. -->
<!--
Azure Pipeline cache entries are immutable. Debug and Release are built in parallel in CI, and some
configuration-independent projects otherwise race to publish the same selector/output entries. Keep the
configurations in separate universes so one seed cannot fail the other with PipelineCacheItemAlreadyExists.
-->
<MSBuildCacheCacheUniverse Condition="'$(MSBuildCacheCacheUniverse)' == ''">testfx-v1-$(Configuration)</MSBuildCacheCacheUniverse>
<MSBuildCacheLocalCacheRootPath Condition="'$(MSBuildCacheLocalCacheRootPath)' == ''">$(RepoRoot)artifacts\msbuild-cache</MSBuildCacheLocalCacheRootPath>
<MSBuildCacheLocalCacheSizeInMegabytes Condition="'$(MSBuildCacheLocalCacheSizeInMegabytes)' == ''">20480</MSBuildCacheLocalCacheSizeInMegabytes>
<!-- Visual Studio telemetry writes outside the repository after the project that launched it has finished. -->
<MSBuildCacheAllowFileAccessAfterProjectFinishFilePatterns>$(MSBuildCacheAllowFileAccessAfterProjectFinishFilePatterns);$(WinDir)\**;\**\ApplicationInsights.config;\**\AppData\Local\Microsoft\VSApplicationInsights\**;\**\AppData\Local\Microsoft\Windows\INetCache\**</MSBuildCacheAllowFileAccessAfterProjectFinishFilePatterns>
</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>
<!-- 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>
<MSTestSourceGenerationPreReleaseVersionLabel>alpha</MSTestSourceGenerationPreReleaseVersionLabel>
<!--
This is a early preview package, keep 2.0.0-alpha or similar suffix even in official builds.
-->
<MSTestSourceGenerationVersionPrefix>2.0.0</MSTestSourceGenerationVersionPrefix>
<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>
<MicrosoftTestingExtensionsGitHubActionsReportPreReleaseVersionLabel>alpha</MicrosoftTestingExtensionsGitHubActionsReportPreReleaseVersionLabel>
<!--
This is an early preview package, keep 1.0.0-alpha or similar suffix even in official builds.
-->
<MicrosoftTestingExtensionsGitHubActionsReportVersionPrefix>1.0.0</MicrosoftTestingExtensionsGitHubActionsReportVersionPrefix>
<MicrosoftTestingExtensionsOpenTelemetryPreReleaseVersionLabel>alpha</MicrosoftTestingExtensionsOpenTelemetryPreReleaseVersionLabel>
<!--
This is an early preview package, keep 1.0.0-alpha or similar suffix even in official builds.
-->
<MicrosoftTestingExtensionsOpenTelemetryVersionPrefix>1.0.0</MicrosoftTestingExtensionsOpenTelemetryVersionPrefix>
<MicrosoftTestingExtensionsPackagedAppPreReleaseVersionLabel>alpha</MicrosoftTestingExtensionsPackagedAppPreReleaseVersionLabel>
<!--
This is an early preview package, keep 1.0.0-alpha or similar suffix even in official builds.
-->
<MicrosoftTestingExtensionsPackagedAppVersionPrefix>1.0.0</MicrosoftTestingExtensionsPackagedAppVersionPrefix>
<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>
</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>