forked from dotnet/msbuild
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Directory.Build.props
101 lines (84 loc) · 5.06 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
<?xml version="1.0" encoding="utf-8"?>
<Project>
<Import Project="Sdk.props" Sdk="Microsoft.DotNet.Arcade.Sdk" />
<PropertyGroup Condition="'$(CopyrightNetFoundation)' != ''">
<Copyright>$(CopyrightNetFoundation)</Copyright>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
</PropertyGroup>
<PropertyGroup>
<Product>Microsoft® Build Tools®</Product>
<Configurations>Debug;Release;Debug-MONO;Release-MONO;MachineIndependent</Configurations>
</PropertyGroup>
<PropertyGroup>
<FullFrameworkTFM>net472</FullFrameworkTFM>
<!--
When updating the version of .NET Core for MSBuild, this property is the 'source of truth'.
Other locations to update the version number:
global.json
eng/cibuild_bootstrapped_msbuild.ps1
eng/cibuild_bootstrapped_msbuild.sh
scripts/Deploy-MSBuild.ps1
src/Framework/README.md
src/Utilities/README.md
-->
<!-- When building in source-only modes, let the TFM float based on what arcade is in use.
When building in normal modes (independent build or a dotnet product build), set explicitly. -->
<LatestDotNetCoreForMSBuild>net8.0</LatestDotNetCoreForMSBuild>
<LatestDotNetCoreForMSBuild Condition="'$(DotNetBuildFromSource)' == 'true' or '$(DotNetBuildSourceOnly)' == 'true'">$(NetCurrent)</LatestDotNetCoreForMSBuild>
</PropertyGroup>
<PropertyGroup>
<DOTNET_INSTALL_DIR Condition="'$(DOTNET_INSTALL_DIR)' == ''">$(RepoRoot).dotnet\</DOTNET_INSTALL_DIR>
<!-- Repository and project URLs (used in nuget packages) -->
<RepositoryUrl>https://github.com/dotnet/msbuild</RepositoryUrl>
<PackageProjectUrl>http://go.microsoft.com/fwlink/?LinkId=624683</PackageProjectUrl>
<PackageIcon>MSBuild-NuGet-Icon.png</PackageIcon>
<PackageTags>MSBuild</PackageTags>
<TargetMSBuildToolsVersion>Current</TargetMSBuildToolsVersion>
</PropertyGroup>
<PropertyGroup>
<GenerateNeutralResourcesLanguageAttribute>false</GenerateNeutralResourcesLanguageAttribute>
<!--
NU1507: ManagePackageVersionsCentrally implies source mapping, which we should consider turning on but it's nontrivial
NU1603: Microsoft.xunit.netcore.extensions package has dependencies to versions which aren't published, so ignore those warnings
NU5105: we're explicitly opting in to semver2, as is most of .NET Core
CS1701 and CS1702 are by default ignored by Microsoft.NET.Sdk, but if you define the NoWarn property in Directory.Build.props,
you don't get those defaults.
SYSLIB0011: Removing binary formatter will happen as part of a larger .NET-wide effort.
SYSLIB0037 & SYSLIB0044: The deprecated AssemblyName members could require a bigger refactor for us: https://github.com/dotnet/msbuild/issues/7902
RS0016 & RS0017: Roslyn analyzers seem to be bugged, claiming that API's that exist don't and vise-versa: https://github.com/dotnet/msbuild/issues/7903
-->
<NoWarn>$(NoWarn);NU1507;NU1603;NU5105;1701;1702;SYSLIB0011;SYSLIB0037;SYSLIB0044;RS0016;RS0017;</NoWarn>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)' == 'Debug-MONO'">
<DebugSymbols Condition="'$(DebugSymbols)' == ''">true</DebugSymbols>
<Optimize Condition="'$(Optimize)' == ''">false</Optimize>
<DefineConstants>$(DefineConstants);DEBUG</DefineConstants>
<MonoBuild>true</MonoBuild>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)' == 'Release-MONO'">
<DebugSymbols Condition="'$(DebugSymbols)' == ''">true</DebugSymbols>
<Optimize Condition="'$(Optimize)' == ''">true</Optimize>
<MonoBuild>true</MonoBuild>
</PropertyGroup>
<!-- Configuration MSBuild for portable (xcopy-install) toolsets: works on WinNT and linux/mac via Mono, isolates from machine environment:
uses only tools installed with it, ignores Registry and GAC and Visual Studio installations to provide the same build experience on all machines -->
<PropertyGroup Condition="'$(Configuration)' == 'MachineIndependent'">
<DebugSymbols Condition="'$(DebugSymbols)' == ''">true</DebugSymbols>
<Optimize Condition="'$(Optimize)' == ''">true</Optimize>
<DebugType Condition="'$(DebugType)' == ''">none</DebugType>
<MachineIndependentBuild>true</MachineIndependentBuild>
</PropertyGroup>
<PropertyGroup>
<DefaultItemExcludes>$(DefaultItemExcludes);*.log</DefaultItemExcludes>
<DefaultItemExcludes>$(DefaultItemExcludes);*.binlog</DefaultItemExcludes>
<DisableImplicitNuGetFallbackFolder>true</DisableImplicitNuGetFallbackFolder>
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
<CentralPackageTransitivePinningEnabled>true</CentralPackageTransitivePinningEnabled>
<DirectoryPackagesPropsPath>$([MSBuild]::NormalizePath('$(MSBuildThisFileDirectory)', 'eng', 'Packages.props'))</DirectoryPackagesPropsPath>
<AccelerateBuildsInVisualStudio>true</AccelerateBuildsInVisualStudio>
</PropertyGroup>
<!-- Enable SDK supplied netanalyzers for all target frameworks -->
<PropertyGroup>
<EnableNETAnalyzers>true</EnableNETAnalyzers>
</PropertyGroup>
</Project>