114 строки
8.5 KiB
XML
114 строки
8.5 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
<!-- This file (Directory.Build.props) is automatically included by MSBuild into all projects in this solution. -->
|
|
<!-- It defines common build paths and infrastructure. -->
|
|
<!-- Other products / repositories using the same build pattern will have an own copy of copy this file -->
|
|
|
|
<Import Project=".\GlobalStaticVersion.props" />
|
|
|
|
<PropertyGroup>
|
|
<!-- The common project structure looks like this: -->
|
|
<!-- d:\DDGit\ -->
|
|
<!-- ServiceFoo\ -->
|
|
<!-- Bin\ -->
|
|
<!-- Obj\ -->
|
|
<!-- Packages\ -->
|
|
<!-- Src\ -->
|
|
<!-- .git\ -->
|
|
<!-- .nuget\ -->
|
|
<!-- Global.props -->
|
|
<!-- SomeProjectFolderA\ -->
|
|
<!-- NuGet.config -->
|
|
<!-- SomeProjectA.sln -->
|
|
<!-- ... -->
|
|
<!-- SomeProjectFolderB\ -->
|
|
<!-- ... -->
|
|
<!-- EnlistmentRoot.marker -->
|
|
<!-- ServiceBar\ -->
|
|
<!-- Bin\ -->
|
|
<!-- Obj\ -->
|
|
<!-- Packages\ -->
|
|
<!-- Src\ -->
|
|
<!-- ... -->
|
|
<!-- -->
|
|
<!-- The Bin folder contains ALL build output. -->
|
|
<!-- The Obj folder contains all intermediate build files (like the obj folder). -->
|
|
<!-- The Packages folder contains ALL packages downloaded by NuGet. -->
|
|
<!-- The above folders contain NOTHING that is checked in (they are not checked in themselves). -->
|
|
<!-- The Src folder contains EVERHYTHNG that is checked in and ALL that is checked in. -->
|
|
<!-- No build output or temp files should end up in the Src folder! (barring a few *small* VS temporaries) -->
|
|
<!-- -->
|
|
<!-- Src MUST contain the EnlistmentRoot.marker file which marks the EnlistmentRoot. -->
|
|
<!-- Src also contains the NuGet.config file which ensures that NuGet uses the NuGet.Packages folder. -->
|
|
|
|
<EnlistmentRoot>$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildProjectDirectory), 'EnlistmentRoot.marker'))</EnlistmentRoot>
|
|
<SourceRoot>$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildProjectDirectory), 'SourceRoot.marker'))</SourceRoot>
|
|
|
|
<BinRoot>$(EnlistmentRoot)\..\bin</BinRoot>
|
|
<BinRoot>$([System.IO.Path]::GetFullPath( $(BinRoot) ))</BinRoot>
|
|
|
|
<RelativeOutputPathBase>$(MSBuildProjectDirectory.Substring($(SourceRoot.Length)))</RelativeOutputPathBase>
|
|
|
|
<!-- Unit Test projects should be in a separate obj directory to exclude them from SDL scans -->
|
|
<BaseIntermediateOutputPath>$(EnlistmentRoot)\..\obj\src\$(MSBuildProjectName)</BaseIntermediateOutputPath>
|
|
<BaseIntermediateOutputPath Condition="$(MSBuildProjectName.Contains('.Tests'))">$(EnlistmentRoot)\..\obj\tests\$(MSBuildProjectName)</BaseIntermediateOutputPath>
|
|
<BaseIntermediateOutputPath>$([System.IO.Path]::GetFullPath( $(BaseIntermediateOutputPath) ))</BaseIntermediateOutputPath>
|
|
|
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
|
|
|
<OutputPath>$(BinRoot)\$(Configuration)\$(RelativeOutputPathBase)</OutputPath>
|
|
<OutputPath>$([System.IO.Path]::GetFullPath( $(OutputPath) ))\</OutputPath>
|
|
|
|
<!-- Collect all NuGet packages in the same folder for convenience during testing -->
|
|
<PackageOutputDir>$(BinRoot)\$(Configuration)\NuGet</PackageOutputDir>
|
|
<PackageOutputPath>$(PackageOutputDir)</PackageOutputPath>
|
|
|
|
<AppxPackageDir>$(OutputPath)</AppxPackageDir>
|
|
|
|
<IntermediateOutputPath>$(BaseIntermediateOutputPath)\$(Configuration)\$(RelativeOutputPathBase)</IntermediateOutputPath>
|
|
<IntermediateOutputPath>$([System.IO.Path]::GetFullPath( $(IntermediateOutputPath) ))\</IntermediateOutputPath>
|
|
|
|
<SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">$(EnlistmentRoot)\</SolutionDir>
|
|
|
|
<PackagesDir>$(EnlistmentRoot)\..\packages</PackagesDir>
|
|
<PackagesDir>$([System.IO.Path]::GetFullPath( $(PackagesDir) ))</PackagesDir>
|
|
</PropertyGroup>
|
|
|
|
<PropertyGroup>
|
|
<!-- Enable NuGet package restore during build -->
|
|
<RestorePackages>true</RestorePackages>
|
|
<RequireRestoreConsent>false</RequireRestoreConsent>
|
|
|
|
<!-- Set the root namespace for all assemblies in this project hierarchy -->
|
|
<RootNamespace>Microsoft.ApplicationInsights</RootNamespace>
|
|
</PropertyGroup>
|
|
|
|
<!-- Generate AssemblyFileVersion and AssemblyVersion attributes. -->
|
|
<PropertyGroup>
|
|
|
|
<!-- Turn on dynamic assembly attribute generation -->
|
|
<AssemblyAttributesPath>$(IntermediateOutputPath)\AssemblyInfo.g.cs</AssemblyAttributesPath>
|
|
<GenerateAdditionalSources>true</GenerateAdditionalSources>
|
|
</PropertyGroup>
|
|
|
|
<ItemGroup>
|
|
<!--
|
|
AssemblyVersion and AssemblyFileVersion attributes are generated automatically for every build.
|
|
NuGet package version is derived from AssemblyFileVersion.
|
|
-->
|
|
<AssemblyAttributes Include="AssemblyVersion">
|
|
<_Parameter1>$(SemanticVersionMajor).$(SemanticVersionMinor).$(SemanticVersionPatch).0</_Parameter1>
|
|
</AssemblyAttributes>
|
|
<AssemblyAttributes Include="AssemblyFileVersion">
|
|
<_Parameter1>$(SemanticVersionMajor).$(SemanticVersionMinor).$(SemanticVersionPatch).$(PreReleaseVersion)</_Parameter1>
|
|
</AssemblyAttributes>
|
|
</ItemGroup>
|
|
|
|
<PropertyGroup>
|
|
<!-- MSBuild 15 apparently uses slightly different properties for the task of generating assembly/file version. -->
|
|
<AssemblyVersion>$(SemanticVersionMajor).$(SemanticVersionMinor).$(SemanticVersionPatch).0</AssemblyVersion>
|
|
<FileVersion>$(SemanticVersionMajor).$(SemanticVersionMinor).$(SemanticVersionPatch).$(PreReleaseVersion)</FileVersion>
|
|
</PropertyGroup>
|
|
|
|
</Project>
|