-
Notifications
You must be signed in to change notification settings - Fork 388
/
Directory.Build.props
144 lines (128 loc) · 9.86 KB
/
Directory.Build.props
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
<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. See the LICENSE.md file in the project root for more information. -->
<Project>
<PropertyGroup>
<!-- Configuration is required for RepoLayout.props -->
<Configuration Condition="'$(Configuration)' == ''">Debug</Configuration>
</PropertyGroup>
<Import Project="eng\imports\RepoLayout.props" />
<!-- Project layout -->
<PropertyGroup>
<OutDirName Condition="'$(OutDirName)' == ''">Dlls</OutDirName>
<BaseOutputPath Condition="'$(BaseOutputPath)' == ''">$([System.IO.Path]::GetFullPath('$(ArtifactsBinDir)$(OutDirName)\'))</BaseOutputPath>
<OutputPath>$(BaseOutputPath)</OutputPath>
<BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)' == ''">$([System.IO.Path]::GetFullPath('$(ArtifactsObjDir)$(MSBuildProjectName)\'))</BaseIntermediateOutputPath>
<IntermediateOutputPath>$(BaseIntermediateOutputPath)</IntermediateOutputPath>
<UseCommonOutputDirectory Condition="'$(UseCommonOutputDirectory)' == ''">true</UseCommonOutputDirectory>
</PropertyGroup>
<!-- Configuration -->
<PropertyGroup>
<MinimumVisualStudioVersion>17.0</MinimumVisualStudioVersion>
<SuppressNETCoreSdkPreviewMessage>true</SuppressNETCoreSdkPreviewMessage>
<NetCoreTargetFramework>net8.0</NetCoreTargetFramework>
<!--
IMPORTANT: The reason we use 99.0.0 is because we need a version number that will always be above the published version of the assemblies/packages.
This causes VS to always prefer our locally build packages for debugging (F5) purposes.
-->
<LocalBuildVersion>99.0.0</LocalBuildVersion>
<!-- Without setting TargetFrameworkVersion for .vsmanproj, GetReferenceAssemblyPaths runs against v4.0, which isn't installed on CI. -->
<!-- error MSB3644: The reference assemblies for .NETFramework,Version=v4.0 were not found. To resolve this, install the Developer Pack (SDK/Targeting Pack) for this framework version or retarget your application. You can download .NET Framework Developer Packs at https://aka.ms/msbuild/developerpacks -->
<TargetFrameworkVersion Condition="'$(MSBuildProjectExtension)' == '.vsmanproj'">v4.7.2</TargetFrameworkVersion>
<AppendTargetFrameworkToOutputPath>true</AppendTargetFrameworkToOutputPath>
<!--
Official build:
- Build standalone Portable PDBs to reduce the size of the binaries.
- Convert Portable PDBs to Windows PDBs and publish the converted PDBs to Symbol Store to allow WinDBG, Watson and other tools to find symbol format they understand.
-->
<DebugType>portable</DebugType>
<!-- Code Coverage doesn't currently work for portable/embedded PDBs. Force it to full inside Visual Studio builds. -->
<DebugType Condition="'$(OfficialBuild)' != 'true' AND '$(CIBuild)' != 'true' AND '$(BuildingInsideVisualStudio)' == 'true'">full</DebugType>
</PropertyGroup>
<!-- General -->
<PropertyGroup>
<!-- Variable used for executing a PowerShell command with arguments for the MSBuild/commandline environment. -->
<PowerShellCommand>powershell -NonInteractive -NoLogo -NoProfile -ExecutionPolicy Unrestricted -Command</PowerShellCommand>
<PowerShellFile>powershell -NonInteractive -NoLogo -NoProfile -ExecutionPolicy Unrestricted -File</PowerShellFile>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<ForceGenerationOfBindingRedirects>true</ForceGenerationOfBindingRedirects>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<ProduceReferenceAssembly>true</ProduceReferenceAssembly>
<NoWarn>$(NoWarn);NU5125</NoWarn>
<!-- Sets deterministic compilation (/deterministic compiler flag) -->
<Deterministic>true</Deterministic>
<AccelerateBuildsInVisualStudio>true</AccelerateBuildsInVisualStudio>
<!-- SourceLink properties -->
<!-- https://github.com/dotnet/sourcelink#using-source-link-in-net-projects -->
<EnableSourceLink>true</EnableSourceLink>
<!-- Publish the repository URL in the built .nupkg (in the NuSpec <Repository> element) -->
<PublishRepositoryUrl>true</PublishRepositoryUrl>
<!-- Embed source files that are not tracked by the source control manager in the PDB -->
<EmbedUntrackedSources>true</EmbedUntrackedSources>
<!-- Build symbol package (.snupkg) to distribute the PDB containing Source Link -->
<IncludeSymbols>true</IncludeSymbols>
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
<!-- Controls both the compiler determinism (same as Deterministic) and turns on normalized PDB paths, which may break local debugging scenarios. -->
<!-- We only want this on for CIBuild, so PDB files point to the local source locations on disk, making finding local files easy during debugging. -->
<!-- See:
- https://github.com/dotnet/sdk/issues/16325#issuecomment-981818164
- https://github.com/dotnet/project-system/pull/8464#discussion_r965499524
-->
<ContinuousIntegrationBuild Condition="'$(CIBuild)' == 'true'">true</ContinuousIntegrationBuild>
<!-- Test project properties -->
<IsUnitTestProject Condition="'$(IsUnitTestProject)' == ''">false</IsUnitTestProject>
<IsIntegrationTestProject Condition="'$(IsIntegrationTestProject)' == ''">false</IsIntegrationTestProject>
<IsTestProject Condition="'$(IsTestProject)' == ''">false</IsTestProject>
</PropertyGroup>
<!-- External -->
<PropertyGroup>
<VSSDKTargetPlatformRegRootSuffix Condition="'$(RootSuffix)' != ''">$(RootSuffix)</VSSDKTargetPlatformRegRootSuffix>
<VSSDKTargetPlatformRegRootSuffix Condition="'$(VSSDKTargetPlatformRegRootSuffix)' == ''">Exp</VSSDKTargetPlatformRegRootSuffix>
<!-- For projects using VSSDK to generate pkgdef files, this sets the registry entires to link to the DLL directly in the PackageFolder location as opposed to using an Assembly reference. -->
<UseCodebase>true</UseCodebase>
<!-- https://github.com/dotnet/Nerdbank.GitVersioning/blob/main/doc/msbuild.md#reducing-getbuildversion-invocations -->
<GitVersionBaseDirectory>$(MSBuildThisFileDirectory)</GitVersionBaseDirectory>
<!-- This tells XliffTasks to produce updated XLF files when building a project. -->
<!-- We set this off in CI so that the CI build will fail if updated XLF files were not committed to the repo. -->
<!-- https://github.com/dotnet/arcade/blob/main/src/Microsoft.DotNet.XliffTasks/README.md#using-microsoftdotnetxlifftasks -->
<UpdateXlfOnBuild Condition="'$(CIBuild)' != 'true'">true</UpdateXlfOnBuild>
</PropertyGroup>
<!-- Strong-name public keys -->
<PropertyGroup>
<MicrosoftSharedPublicKey>0024000004800000940000000602000000240000525341310004000001000100b5fc90e7027f67871e773a8fde8938c81dd402ba65b9201d60593e96c492651e889cc13f1415ebb53fac1131ae0bd333c5ee6021672d9718ea31a8aebd0da0072f25d87dba6fc90ffd598ed4da35e44c398c454307e8e33b8426143daec9f596836f97c8f74750e5975c64e2189f45def46b2a2b1247adc3652bf5c308055da9</MicrosoftSharedPublicKey>
<MicrosoftPublicKey>002400000480000094000000060200000024000052534131000400000100010007d1fa57c4aed9f0a32e84aa0faefd0de9e8fd6aec8f87fb03766c834c99921eb23be79ad9d5dcc1dd9ad236132102900b723cf980957fc4e177108fc607774f29e8320e92ea05ece4e821c0a5efe8f1645c4c0c93c1ab99285d622caa652c1dfad63d745d6f2de5f17e5eaf0fc4963d261c8a12436518206dc093344d5ad293</MicrosoftPublicKey>
<MicrosoftAspNetPublicKey>0024000004800000940000000602000000240000525341310004000001000100f33a29044fa9d740c9b3213a93e57c84b472c84e0b8a0e1ae48e67a9f8f6de9d5f7f3d52ac23e48ac51801f1dc950abe901da34d2a9e3baadb141a17c77ef3c565dd5ee5054b91cf63bb3c6ab83f72ab3aafe93d0fc3c2348b764fafb0b1c0733de51459aeab46580384bf9d74c4e28164b7cde247f891ba07891c9d872ad2bb</MicrosoftAspNetPublicKey>
<MoqPublicKey>0024000004800000940000000602000000240000525341310004000001000100c547cac37abd99c8db225ef2f6c8a3602f3b3606cc9891605d02baa56104f4cfc0734aa39b93bf7852f7d9266654753cc297e7d2edfe0bac1cdcf9f717241550e0a7b191195b7667bb4f64bcb8e2121380fd1d9d46ad2d92d2d15605093924cceaf74c4861eff62abf69b9291ed0a340e113be11e6a7d3113e92484cf7045cc7</MoqPublicKey>
</PropertyGroup>
<!-- Packaging/distribution -->
<PropertyGroup>
<SignAssembly>true</SignAssembly>
<StrongNameKeyId>MicrosoftShared</StrongNameKeyId>
<ChecksumAlgorithm>SHA256</ChecksumAlgorithm>
<HighEntropyVA>true</HighEntropyVA>
<NeutralLanguage>en-US</NeutralLanguage>
<Company>Microsoft Corporation</Company>
<Copyright>© Microsoft Corporation. All rights reserved.</Copyright>
<Authors>Microsoft</Authors>
<Serviceable>true</Serviceable>
<PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance>
<PackageLicenseUrl>http://go.microsoft.com/fwlink/?LinkId=529443</PackageLicenseUrl>
<RepositoryUrl>https://github.com/dotnet/project-system</RepositoryUrl>
<PackageProjectUrl>$(RepositoryUrl)</PackageProjectUrl>
<RepositoryType>git</RepositoryType>
<!-- By default, do not build a NuGet package for a project. -->
<IsPackable>false</IsPackable>
</PropertyGroup>
<!-- Implicit usings -->
<!-- See: https://learn.microsoft.com/dotnet/core/project-sdk/msbuild-props#using -->
<ItemGroup>
<!-- We use immutable collections extensively and expect no naming conflicts. -->
<Using Include="System.Collections.Immutable" />
<!-- There are two namespaces via which MEF attributes are defined. This is the correct one. -->
<Using Include="System.ComponentModel.Composition" />
<!-- Discourage importing all of Microsoft.VisualStudio.Composition by aliasing the most common type(s) we actually use from that namespace. -->
<Using Include="Microsoft.VisualStudio.Composition.ImportCardinality" Alias="ImportCardinality" />
<!-- Prevent accidental use of Microsoft.VisualStudio.Threading.IAsyncDisposable -->
<Using Include="System.IAsyncDisposable" Alias="IAsyncDisposable" />
</ItemGroup>
<Import Project="eng\imports\LanguageSettings.props" />
<Import Project="eng\imports\Workarounds.props" />
</Project>