Tilee/reorg props (#1295)
* use a common props file for the version * remove dirs.proj no longer in use. * remove extra nupkg.props * new NupkgAudit script * update web dirs.proj * update gitignore * update script * fix icon url bug * cleanup * fix for netcore projects * testing file version * clreanup version * fix versioning across all projects * remove unused props and targets * cleanup * fix for failing test
This commit is contained in:
Родитель
8dc1ef43f2
Коммит
abfb7c1540
|
@ -184,3 +184,4 @@ bower_components/
|
|||
node_modules/
|
||||
**/wwwroot/lib
|
||||
/Msbuild.*
|
||||
**/Nuget.exe
|
||||
|
|
Двоичный файл не отображается.
После Ширина: | Высота: | Размер: 1.3 KiB |
|
@ -11,28 +11,46 @@
|
|||
Update for every public release.
|
||||
-->
|
||||
<SemanticVersionMajor>2</SemanticVersionMajor>
|
||||
<SemanticVersionMinor>12</SemanticVersionMinor>
|
||||
<SemanticVersionMinor>12</SemanticVersionMinor> <!-- If changing the Minor version, also update the Date value. -->
|
||||
<SemanticVersionPatch>0</SemanticVersionPatch>
|
||||
<!--Valid values: beta1, beta2, EMPTY for stable -->
|
||||
<PreReleaseMilestone>beta1</PreReleaseMilestone>
|
||||
<PreReleaseMilestone>beta2</PreReleaseMilestone> <!--Valid values: beta1, beta2, EMPTY for stable -->
|
||||
<!--
|
||||
Date when Semantic Version was changed.
|
||||
Update for every public release.
|
||||
Update for every MINOR release.
|
||||
NOTE!!!!!! Do not update when updating PreReleaseMilestone update
|
||||
as it will restart file versions so 2.4.0-beta1 may have higher
|
||||
file version (like 2.4.0.2222) than 2.4.0-beta2 (like 2.4.0.1111)
|
||||
-->
|
||||
<SemanticVersionDate>2019-09-23</SemanticVersionDate>
|
||||
|
||||
<!--
|
||||
Pre-release version is used to distinguish internally built NuGet packages.
|
||||
Pre-release version = Minutes since semantic version was set, divided by 5 (to make it fit in a UInt16 (max 65535 = ~7 months).
|
||||
-->
|
||||
<PreReleaseVersion Condition="'$(PreReleaseVersion)'==''">$([MSBuild]::Divide($([System.DateTime]::Now.Subtract($([System.DateTime]::Parse($(SemanticVersionDate)))).TotalMinutes), 5).ToString('F0'))</PreReleaseVersion>
|
||||
<BuildNumber>$([MSBuild]::Divide($([System.DateTime]::Now.Subtract($([System.DateTime]::Parse($(SemanticVersionDate)))).TotalMinutes), 5).ToString('F0'))</BuildNumber>
|
||||
|
||||
<VersionPrefix>$(SemanticVersionMajor).$(SemanticVersionMinor).$(SemanticVersionPatch)</VersionPrefix>
|
||||
<VersionSuffix>$(PreReleaseMilestone)</VersionSuffix>
|
||||
<AssemblyVersion>$(VersionPrefix).$(BuildNumber)</AssemblyVersion>
|
||||
<FileVersion>$(AssemblyVersion)</FileVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(PackageVersion)'==''">
|
||||
<PackageVersion>$(SemanticVersionMajor).$(SemanticVersionMinor).$(SemanticVersionPatch)</PackageVersion>
|
||||
<PackageVersion>$(VersionPrefix)</PackageVersion>
|
||||
<PackageVersion Condition="'$(PreReleaseMilestone)' != ''">$(PackageVersion)-$(PreReleaseMilestone)</PackageVersion>
|
||||
<PackageVersion Condition="'$(StableRelease)' != 'True'">$(PackageVersion)-build$(PreReleaseVersion)</PackageVersion>
|
||||
<PackageVersion Condition="'$(StableRelease)' != 'True'">$(PackageVersion)-build$(BuildNumber)</PackageVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<!--
|
||||
AssemblyVersion and AssemblyFileVersion attributes are generated automatically for every build.
|
||||
NuGet package version is derived from AssemblyFileVersion.
|
||||
-->
|
||||
<AssemblyAttributes Include="AssemblyVersion">
|
||||
<_Parameter1>$(AssemblyVersion)</_Parameter1>
|
||||
</AssemblyAttributes>
|
||||
<AssemblyAttributes Include="AssemblyFileVersion">
|
||||
<_Parameter1>$(FileVersion)</_Parameter1>
|
||||
</AssemblyAttributes>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
<PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance>
|
||||
<PackageLicenseExpression>MIT</PackageLicenseExpression>
|
||||
<PackageProjectUrl>https://go.microsoft.com/fwlink/?LinkId=392727</PackageProjectUrl>
|
||||
<PackageIconUrl>http://appanacdn.blob.core.windows.net/cdn/icons/aic.png</PackageIconUrl>
|
||||
<PackageIcon>icon.png</PackageIcon>
|
||||
<RepositoryUrl>https://github.com/Microsoft/ApplicationInsights-dotnet</RepositoryUrl>
|
||||
<RepositoryType>Git</RepositoryType>
|
||||
<PackageType>Dependency</PackageType>
|
||||
|
@ -34,6 +34,10 @@
|
|||
<PackageTags>Analytics Azure ApplicationInsights Telemetry Monitoring SDK</PackageTags>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<None Include="$(EnlistmentRoot)\.images\icon.png" Pack="true" PackagePath="\"/>
|
||||
</ItemGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<!-- These Properties are unique to the project and must be set in the csproj -->
|
||||
<PackageId>UNDEFINED</PackageId>
|
||||
|
|
|
@ -4,12 +4,23 @@
|
|||
# Authoring Requirements: https://microsoft.sharepoint.com/teams/NuGet/MicrosoftWiki/AuthoringRequirements.aspx
|
||||
# Signing Requirements: https://microsoft.sharepoint.com/teams/NuGet/MicrosoftWiki/SigningMicrosoftPackages.aspx
|
||||
Param(
|
||||
[Parameter(Mandatory=$true,HelpMessage="Path to Artifact files (nupkg):")]
|
||||
|
||||
[Parameter(Mandatory=$true,HelpMessage="Path to Nupkg files:")]
|
||||
[string]
|
||||
$path,
|
||||
[Parameter(Mandatory=$true,HelpMessage="Full Log?:")] #Include Pass with Fail output?
|
||||
$nupkgPath,
|
||||
|
||||
[Parameter(Mandatory=$true,HelpMessage="Path to working directory:")]
|
||||
[string]
|
||||
$workingDir,
|
||||
|
||||
[Parameter(Mandatory=$true,HelpMessage="Full Log?:")] #Include Pass messages with output?
|
||||
[bool]
|
||||
$verboseLog
|
||||
$verboseLog,
|
||||
|
||||
[Parameter(Mandatory=$false,HelpMessage="Full Log?:")]
|
||||
[bool]
|
||||
$verifySigning = $true
|
||||
|
||||
)
|
||||
|
||||
|
||||
|
@ -19,22 +30,23 @@ $expectedLicense = "MIT"; # MIT License SPDX ID
|
|||
$expectedOwner = "AppInsightsSdk"; # Application Insights Nuget Account
|
||||
$expectedTags = @("Azure","Monitoring");
|
||||
|
||||
$nugetExePath = "$PSScriptRoot\Nuget.exe";
|
||||
|
||||
$sb = [System.Text.StringBuilder]::new();
|
||||
|
||||
$script:isValid = $true;
|
||||
|
||||
|
||||
# Get the latest Nuget.exe from here:
|
||||
if (!(Test-Path ".\Nuget.exe")) {
|
||||
if (!(Test-Path $nugetExePath)) {
|
||||
|
||||
Write-Host "Nuget.exe not found. Attempting download...";
|
||||
Write-Host "Start time:" (Get-Date -Format G);
|
||||
$downloadNugetUrl = "https://dist.nuget.org/win-x86-commandline/latest/nuget.exe";
|
||||
$saveFile = "$PSScriptRoot\Nuget.exe";
|
||||
(New-Object System.Net.WebClient).DownloadFile($downloadNugetUrl, $saveFile);
|
||||
(New-Object System.Net.WebClient).DownloadFile($downloadNugetUrl, $nugetExePath);
|
||||
Write-Host "Finish time:" (Get-Date -Format G);
|
||||
|
||||
if (!(Test-Path ".\Nuget.exe")) {
|
||||
if (!(Test-Path $nugetExePath)) {
|
||||
throw "Error: Nuget.exe not found! Please download latest from: https://www.nuget.org/downloads";
|
||||
}
|
||||
}
|
||||
|
@ -95,7 +107,7 @@ function Test-MultiCondition ([bool]$requiredCondition, [bool]$recommendedCondit
|
|||
|
||||
function Get-IsPackageSigned([string]$nupkgPath) {
|
||||
$verifyOutput = "";
|
||||
$null = .\Nuget.exe verify -signature -CertificateFingerprint 3F9001EA83C560D712C24CF213C3D312CB3BFF51EE89435D3430BD06B5D0EECE $nupkgPath -verbosity detailed 2>&1 | Tee-Object -Variable verifyOutput
|
||||
$null = & $nugetExePath verify -signature -CertificateFingerprint 3F9001EA83C560D712C24CF213C3D312CB3BFF51EE89435D3430BD06B5D0EECE $nupkgPath -verbosity detailed 2>&1 | Tee-Object -Variable verifyOutput
|
||||
|
||||
#TEST OUTPUT
|
||||
Write-Host $verifyOutput
|
||||
|
@ -137,6 +149,16 @@ function Get-DoesXmlDocExist ([string]$dllPath) {
|
|||
Test-Condition (Test-Path $docFile) $message $requirement;
|
||||
}
|
||||
|
||||
function Get-DoesDllVersionsMatch ([string]$dllPath) {
|
||||
# CONFIRM Assembly version matches File version
|
||||
[string]$fileVersion = [System.Diagnostics.FileVersionInfo]::GetVersionInfo($dllPath).FileVersion;
|
||||
[string]$assemblyVersion = [Reflection.AssemblyName]::GetAssemblyName($dllPath).Version;
|
||||
|
||||
$message = "File Version: '$fileVersion' Assembly Version: '$assemblyVersion";
|
||||
$requirement = "Versions should match."
|
||||
Test-Condition ($fileVersion.Equals($assemblyVersion)) $message $requirement;
|
||||
}
|
||||
|
||||
function Get-IsValidPackageId([xml]$nuspecXml) {
|
||||
$id = $nuspecXml.package.metadata.id;
|
||||
|
||||
|
@ -233,35 +255,23 @@ function Get-IsValidTags([xml]$nuspecXml) {
|
|||
}
|
||||
}
|
||||
|
||||
function Get-IsValidLogoUrl([xml]$nuspecXml, $path) {
|
||||
$logoUrl = $nuspecXml.package.metadata.iconUrl;
|
||||
$isEmpty = [System.String]::IsNullOrEmpty($logoUrl);
|
||||
$dimension = "";
|
||||
function Get-IsValidLogo([xml]$nuspecXml, $path) {
|
||||
$logoValue = $nuspecXml.package.metadata.icon;
|
||||
$hasLogo = !([System.String]::IsNullOrEmpty($logoValue));
|
||||
|
||||
try {
|
||||
$filePath = Join-Path $path "logo.png";
|
||||
$wc = New-Object System.Net.WebClient;
|
||||
$wc.DownloadFile($logoUrl, $filePath);
|
||||
add-type -AssemblyName System.Drawing
|
||||
$png = New-Object System.Drawing.Bitmap $filePath
|
||||
$dimension = "$($png.Height)x$($png.Width)";
|
||||
|
||||
# Release lock on png file
|
||||
Remove-Variable png;
|
||||
Remove-Variable wc;
|
||||
$filePath = Join-Path $path $logoValue;
|
||||
$exists = [System.IO.File]::Exists($filePath)
|
||||
} catch [System.SystemException] {
|
||||
$_.Exception.Message;
|
||||
}
|
||||
|
||||
[string[]]$expectedDimensions = ("32x32","48x48","64x64","128x128");
|
||||
|
||||
$message = "Logo Url: $logoUrl Dimensions: $dimension";
|
||||
$message1 = "Logo: $logoValue";
|
||||
$message2 = "Logo Exists: $exists";
|
||||
$requirement = "Must have a logo."
|
||||
$recommendation = "Should be one of these sizes: $expectedDimensions";
|
||||
|
||||
$isExpected = ($expectedDimensions -contains $dimension);
|
||||
|
||||
Test-MultiCondition (!$isEmpty) ($isExpected) $message $requirement $recommendation;
|
||||
Test-Condition ($hasLogo) $message1 $requirement;
|
||||
Test-Condition ($exists) $message2 $requirement;
|
||||
}
|
||||
|
||||
function Invoke-UnZip([string]$zipfile, [string]$outpath) {
|
||||
|
@ -273,10 +283,12 @@ function Invoke-UnZip([string]$zipfile, [string]$outpath) {
|
|||
|
||||
function Start-EvaluateNupkg ($nupkgPath) {
|
||||
Write-Break;
|
||||
Write-Host "Evaluate nupkg:"
|
||||
Write-Name $nupkgPath;
|
||||
|
||||
if ($verifySigning){
|
||||
Get-IsPackageSigned $nupkgPath;
|
||||
|
||||
}
|
||||
|
||||
$unzipPath = $nupkgPath+"_unzip";
|
||||
Remove-Item $unzipPath -Recurse -ErrorAction Ignore
|
||||
|
@ -284,6 +296,7 @@ function Start-EvaluateNupkg ($nupkgPath) {
|
|||
|
||||
# LOOK FOR ALL NUSPEC WITHIN NUPKG
|
||||
Get-ChildItem -Path $unzipPath -Recurse -Filter *.nuspec | ForEach-Object {
|
||||
Write-Host "Evaluate nuspec:"
|
||||
Write-Name $_.FullName;
|
||||
[xml]$nuspecXml = Get-Content $_.FullName
|
||||
Get-IsValidPackageId $nuspecXml;
|
||||
|
@ -293,25 +306,55 @@ function Start-EvaluateNupkg ($nupkgPath) {
|
|||
Get-IsValidLicense $nuspecXml;
|
||||
Get-IsValidLicenseAcceptance $nuspecXml;
|
||||
Get-IsValidCopyright $nuspecXml;
|
||||
Get-IsValidLogoUrl $nuspecXml $unzipPath;
|
||||
Get-IsValidLogo $nuspecXml $unzipPath;
|
||||
Get-IsValidDescription $nuspecXml;
|
||||
Get-IsValidTags $nuspecXml;
|
||||
}
|
||||
|
||||
# LOOK FOR ALL DLL WITHIN NUPKG
|
||||
Get-ChildItem -Path $unzipPath -Recurse -Filter *.dll | ForEach-Object {
|
||||
Write-Host "Evaluate dll:"
|
||||
Write-Name $_.FullName;
|
||||
|
||||
if ($verifySigning) {
|
||||
Get-IsDllSigned $_.FullName;
|
||||
}
|
||||
|
||||
Get-DoesDllVersionsMatch $_.FullName;
|
||||
|
||||
Get-DoesXmlDocExist $_.FullName;
|
||||
}
|
||||
}
|
||||
|
||||
# LOOK FOR ALL NUPKG IN A DIRECTORY.
|
||||
Get-ChildItem -Path $path -Recurse -Filter *.nupkg -Exclude *.symbols.nupkg |
|
||||
############################
|
||||
# MAIN EXECUTION STARTS HERE
|
||||
############################
|
||||
|
||||
# CLEAR WORKING DIRECTORY
|
||||
Remove-Item $workingDir -Recurse -ErrorAction Ignore
|
||||
New-Item -ItemType directory -Path $workingDir
|
||||
|
||||
# FIND ALL NUPKG AND COPY TO WORKING DIRECTORY
|
||||
Get-ChildItem -Path $nupkgPath -Recurse -Filter *.nupkg -Exclude *.symbols.nupkg -File |
|
||||
Copy-Item -Destination $workingDir
|
||||
|
||||
# LIST ALL FILES IN WORKING DIRECTORY
|
||||
Write-Host "NUPKGS to audit:"
|
||||
$files = Get-ChildItem -Path $workingDir -Recurse -File;
|
||||
$files | ForEach-Object { Write-Host "`t"$_.FullName };
|
||||
Write-Host "`nCount:" $files.Count;
|
||||
|
||||
# RUN AUDIT
|
||||
Get-ChildItem -Path $workingDir -Recurse -File -Include *.nupkg |
|
||||
ForEach-Object { Start-EvaluateNupkg $_.FullName }
|
||||
|
||||
$sb.ToString() | Add-Content (Join-Path $path "log.txt");
|
||||
# LOG
|
||||
$logPath = (Join-Path $workingDir "log.txt")
|
||||
$sb.ToString() | Add-Content $logPath;
|
||||
Write-Host "`nLog file created at $logPath"
|
||||
|
||||
# RESULT
|
||||
if (!$script:isValid){
|
||||
Write-Host "`n"
|
||||
throw "NUPKG or DLL is not valid. Please review log...";
|
||||
}
|
|
@ -4,7 +4,6 @@
|
|||
<!-- It defines common build paths and infrastructure. -->
|
||||
<!-- Other products / repositories using the same build pattern will have their own copy of copy this file -->
|
||||
|
||||
<Import Project=".\GlobalStaticVersion.props" />
|
||||
|
||||
<PropertyGroup>
|
||||
<!-- The common project structure looks like this: -->
|
||||
|
@ -44,6 +43,13 @@
|
|||
<EnlistmentRoot>$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildProjectDirectory), 'EnlistmentRoot.marker'))</EnlistmentRoot>
|
||||
<SourceRoot>$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildProjectDirectory), 'SourceRoot.marker'))</SourceRoot>
|
||||
|
||||
|
||||
<KeysRoot>$(EnlistmentRoot)\.keys</KeysRoot>
|
||||
<PropsRoot>$(EnlistmentRoot)\.props</PropsRoot>
|
||||
<RulesetsRoot>$(EnlistmentRoot)\.rulesets</RulesetsRoot>
|
||||
<TargetsRoot>$(EnlistmentRoot)\.targets</TargetsRoot>
|
||||
|
||||
|
||||
<BinRoot>$(EnlistmentRoot)\..\bin</BinRoot>
|
||||
<BinRoot>$([System.IO.Path]::GetFullPath( $(BinRoot) ))</BinRoot>
|
||||
|
||||
|
@ -76,6 +82,9 @@
|
|||
<EtwManifestOutDir>$(BinRoot)\$(Configuration)\ETW\$(TargetFramework)\</EtwManifestOutDir>
|
||||
</PropertyGroup>
|
||||
|
||||
|
||||
<Import Project="$(PropsRoot)\_GlobalStaticVersion.props" />
|
||||
|
||||
<PropertyGroup>
|
||||
<!-- Enable NuGet package restore during build -->
|
||||
<RestorePackages>true</RestorePackages>
|
||||
|
@ -88,16 +97,5 @@
|
|||
<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>
|
||||
|
||||
</Project>
|
|
@ -1,33 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<!--
|
||||
Semantic Version. See http://semver.org for full details.
|
||||
Update for every public release.
|
||||
-->
|
||||
<SemanticVersionMajor>2</SemanticVersionMajor>
|
||||
<SemanticVersionMinor>12</SemanticVersionMinor>
|
||||
<SemanticVersionPatch>0</SemanticVersionPatch>
|
||||
<!--Valid values: beta1, beta2, EMPTY for stable -->
|
||||
<PreReleaseMilestone>beta1</PreReleaseMilestone>
|
||||
<!--
|
||||
Date when Semantic Version was changed.
|
||||
Update for every public release.
|
||||
NOTE!!!!!! Do not update when updating PreReleaseMilestone update
|
||||
as it will restart file versions so 2.4.0-beta1 may have higher
|
||||
file version (like 2.4.0.2222) than 2.4.0-beta2 (like 2.4.0.1111)
|
||||
-->
|
||||
<SemanticVersionDate>2019-09-23</SemanticVersionDate>
|
||||
<!--
|
||||
Pre-release version is used to distinguish internally built NuGet packages.
|
||||
Pre-release version = Minutes since semantic version was set, divided by 5 (to make it fit in a UInt16 (max 65535 = ~7 months).
|
||||
-->
|
||||
<PreReleaseVersion Condition="'$(PreReleaseVersion)'==''">$([MSBuild]::Divide($([System.DateTime]::Now.Subtract($([System.DateTime]::Parse($(SemanticVersionDate)))).TotalMinutes), 5).ToString('F0'))</PreReleaseVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(PackageVersion)'==''">
|
||||
<PackageVersion>$(SemanticVersionMajor).$(SemanticVersionMinor).$(SemanticVersionPatch)</PackageVersion>
|
||||
<PackageVersion Condition="'$(PreReleaseMilestone)' != ''">$(PackageVersion)-$(PreReleaseMilestone)</PackageVersion>
|
||||
<PackageVersion Condition="'$(StableRelease)' != 'True'">$(PackageVersion)-build$(PreReleaseVersion)</PackageVersion>
|
||||
</PropertyGroup>
|
||||
</Project>
|
|
@ -19,10 +19,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".Solution Items", ".Solutio
|
|||
Common.props = Common.props
|
||||
Common.targets = Common.targets
|
||||
Directory.Build.props = Directory.Build.props
|
||||
dirs.proj = dirs.proj
|
||||
GlobalStaticVersion.props = GlobalStaticVersion.props
|
||||
NuGet.config = NuGet.config
|
||||
Nupkg.props = Nupkg.props
|
||||
Package.targets = Package.targets
|
||||
README.md = README.md
|
||||
Signing.props = Signing.props
|
||||
|
|
|
@ -1,50 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup Condition="$(OS) == 'Windows_NT'">
|
||||
<!-- Including this file will generate both the *.nupkg and *.symbols.nupkg -->
|
||||
<!--https://docs.microsoft.com/en-us/nuget/create-packages/symbol-packages-snupkg-->
|
||||
<GeneratePackageOnBuild>True</GeneratePackageOnBuild>
|
||||
<IncludeSymbols>True</IncludeSymbols>
|
||||
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<!-- These are the common properties used when generating the nupkg -->
|
||||
<!-- https://docs.microsoft.com/en-us/nuget/schema/msbuild-targets -->
|
||||
<Company>Microsoft</Company>
|
||||
<Copyright>© Microsoft Corporation. All rights reserved.</Copyright>
|
||||
<!-- <PackageVersion>Defined in GlobalStaticVersion.props</PackageVersion> -->
|
||||
<Authors>Microsoft</Authors>
|
||||
<Owners>Microsoft,AppInsightsSdk</Owners>
|
||||
<PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance>
|
||||
<PackageLicenseExpression>MIT</PackageLicenseExpression>
|
||||
<PackageProjectUrl>https://go.microsoft.com/fwlink/?LinkId=392727</PackageProjectUrl>
|
||||
<PackageIconUrl>http://appanacdn.blob.core.windows.net/cdn/icons/aic.png</PackageIconUrl>
|
||||
<RepositoryUrl>https://github.com/Microsoft/ApplicationInsights-dotnet</RepositoryUrl>
|
||||
<RepositoryType>Git</RepositoryType>
|
||||
<PackageType>Dependency</PackageType>
|
||||
<ContentTargetFolders>content</ContentTargetFolders>
|
||||
<PackageReleaseNotes>For the release notes please follow http://go.microsoft.com/fwlink/?LinkId=535037</PackageReleaseNotes>
|
||||
<!-- <PackageOutputPath>Defined in Directory.Build.props</PackageOutputPath> -->
|
||||
<PackageTags>Analytics Azure ApplicationInsights Telemetry Monitoring SDK</PackageTags>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<!-- These Properties are unique to the project and must be set in the csproj -->
|
||||
<PackageId>UNDEFINED</PackageId>
|
||||
<Title>UNDEFINED</Title>
|
||||
<Description>UNDEFINED</Description>
|
||||
<!-- <PackageTags>$(PackageTags) newTag1 newTag2</PackageTags> -->
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<!-- Disable auto generation of package attributes. This resolves the 'Duplicate attribute' error.
|
||||
Common cause is a hidden AssemblyInfo.cs file in a project -->
|
||||
<GenerateAssemblyVersionAttribute>false</GenerateAssemblyVersionAttribute>
|
||||
<GenerateAssemblyFileVersionAttribute>false</GenerateAssemblyFileVersionAttribute>
|
||||
<GenerateAssemblyInformationalVersionAttribute>false</GenerateAssemblyInformationalVersionAttribute>
|
||||
<GenerateAssemblyDescriptionAttribute>false</GenerateAssemblyDescriptionAttribute>
|
||||
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
|
||||
<GenerateAssemblyTitleAttribute>false</GenerateAssemblyTitleAttribute>
|
||||
</PropertyGroup>
|
||||
</Project>
|
|
@ -1,18 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project=".\GlobalStaticVersion.props" />
|
||||
|
||||
<ItemGroup>
|
||||
<Solution Include="Microsoft.ApplicationInsights.sln" />
|
||||
</ItemGroup>
|
||||
|
||||
<Target Name="Build">
|
||||
<Exec Command='IF EXIST "%(Solution.FullPath)" nuget.exe restore "%(Solution.FullPath)" -NonInteractive' ContinueOnError="ErrorAndStop"/>
|
||||
<MSBuild Projects="@(Solution)" Targets="Restore;Build" ContinueOnError="ErrorAndStop" Properties="PreReleaseVersion=$(PreReleaseVersion)"/>
|
||||
</Target>
|
||||
|
||||
<Target Name="Clean">
|
||||
<RemoveDir Directories="$(BinRoot)\$(Configuration)" />
|
||||
<RemoveDir Directories="$(BaseIntermediateOutputPath)" />
|
||||
</Target>
|
||||
</Project>
|
|
@ -1,6 +1,6 @@
|
|||
<Project ToolsVersion="15.0" Sdk="Microsoft.NET.Sdk">
|
||||
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildProjectDirectory), 'Product.props'))\Product.props" />
|
||||
<Import Project="..\..\Nupkg.props" />
|
||||
<Import Project="$(PropsRoot)\_Nupkg.props" />
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFrameworks>net45;net46;netstandard1.3;netstandard2.0</TargetFrameworks>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<Project ToolsVersion="15.0" Sdk="Microsoft.NET.Sdk">
|
||||
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildProjectDirectory), 'Product.props'))\Product.props" />
|
||||
<Import Project="..\..\Nupkg.props" />
|
||||
<Import Project="$(PropsRoot)\_Nupkg.props" />
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFrameworks>net45;netstandard1.3;netstandard2.0</TargetFrameworks>
|
||||
|
|
|
@ -4,8 +4,6 @@
|
|||
<!-- 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\ -->
|
||||
|
@ -44,6 +42,13 @@
|
|||
<EnlistmentRoot>$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildProjectDirectory), 'EnlistmentRoot.marker'))</EnlistmentRoot>
|
||||
<SourceRoot>$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildProjectDirectory), 'SourceRoot.marker'))</SourceRoot>
|
||||
|
||||
|
||||
<KeysRoot>$(EnlistmentRoot)\.keys</KeysRoot>
|
||||
<PropsRoot>$(EnlistmentRoot)\.props</PropsRoot>
|
||||
<RulesetsRoot>$(EnlistmentRoot)\.rulesets</RulesetsRoot>
|
||||
<TargetsRoot>$(EnlistmentRoot)\.targets</TargetsRoot>
|
||||
|
||||
|
||||
<BinRoot>$(EnlistmentRoot)\..\bin</BinRoot>
|
||||
<BinRoot>$([System.IO.Path]::GetFullPath( $(BinRoot) ))</BinRoot>
|
||||
|
||||
|
@ -74,6 +79,9 @@
|
|||
<PackagesDir>$([System.IO.Path]::GetFullPath( $(PackagesDir) ))</PackagesDir>
|
||||
</PropertyGroup>
|
||||
|
||||
|
||||
<Import Project="$(PropsRoot)\_GlobalStaticVersion.props" />
|
||||
|
||||
<PropertyGroup>
|
||||
<!-- Enable NuGet package restore during build -->
|
||||
<RestorePackages>true</RestorePackages>
|
||||
|
@ -91,23 +99,4 @@
|
|||
<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>
|
||||
|
|
|
@ -1,32 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<!--
|
||||
Semantic Version. See http://semver.org for full details.
|
||||
Update for every public release.
|
||||
-->
|
||||
<SemanticVersionMajor>2</SemanticVersionMajor>
|
||||
<SemanticVersionMinor>12</SemanticVersionMinor>
|
||||
<SemanticVersionPatch>0</SemanticVersionPatch>
|
||||
<PreReleaseMilestone>beta1</PreReleaseMilestone>
|
||||
<!--
|
||||
Date when Semantic Version was changed.
|
||||
Update for every public release.
|
||||
-->
|
||||
<SemanticVersionDate>2019-09-23</SemanticVersionDate>
|
||||
|
||||
<PreReleaseVersionFileName>.PreReleaseVersion</PreReleaseVersionFileName>
|
||||
<PreReleaseVersionFilePath>$(MSBuildThisFileDirectory)$(PreReleaseVersionFileName)</PreReleaseVersionFilePath>
|
||||
<!--
|
||||
Pre-release version is used to distinguish internally built NuGet packages.
|
||||
Pre-release version = Minutes since semantic version was set, divided by 5 (to make it fit in a UInt16 (max 65535 = ~7 months).
|
||||
-->
|
||||
<PreReleaseVersion>$([MSBuild]::Divide($([System.DateTime]::Now.Subtract($([System.DateTime]::Parse($(SemanticVersionDate)))).TotalMinutes), 5).ToString('F0'))</PreReleaseVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(PackageVersion)'==''">
|
||||
<PackageVersion>$(SemanticVersionMajor).$(SemanticVersionMinor).$(SemanticVersionPatch)</PackageVersion>
|
||||
<PackageVersion Condition="'$(PreReleaseMilestone)' != ''">$(PackageVersion)-$(PreReleaseMilestone)</PackageVersion>
|
||||
<PackageVersion Condition="'$(StableRelease)' != 'True'">$(PackageVersion)-build$(PreReleaseVersion)</PackageVersion>
|
||||
</PropertyGroup>
|
||||
</Project>
|
|
@ -18,9 +18,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".Solution Items", ".Solutio
|
|||
Common.props = Common.props
|
||||
Common.targets = Common.targets
|
||||
Directory.Build.props = Directory.Build.props
|
||||
GlobalStaticVersion.props = GlobalStaticVersion.props
|
||||
NuGet.Config = NuGet.Config
|
||||
Nupkg.props = Nupkg.props
|
||||
src\Product.props = src\Product.props
|
||||
README.md = README.md
|
||||
Signing.targets = Signing.targets
|
||||
|
|
|
@ -1,50 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup Condition="$(OS) == 'Windows_NT'">
|
||||
<!-- Including this file will generate both the *.nupkg and *.snupkg -->
|
||||
<!--https://docs.microsoft.com/en-us/nuget/create-packages/symbol-packages-snupkg-->
|
||||
<GeneratePackageOnBuild>True</GeneratePackageOnBuild>
|
||||
<IncludeSymbols>True</IncludeSymbols>
|
||||
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<!-- These are the common properties used when generating the nupkg -->
|
||||
<!-- https://docs.microsoft.com/en-us/nuget/schema/msbuild-targets -->
|
||||
<Company>Microsoft</Company>
|
||||
<Copyright>© Microsoft Corporation. All rights reserved.</Copyright>
|
||||
<!-- <PackageVersion>Defined in GlobalStaticVersion.props</PackageVersion> -->
|
||||
<Authors>Microsoft</Authors>
|
||||
<Owners>Microsoft,AppInsightsSdk</Owners>
|
||||
<PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance>
|
||||
<PackageLicenseExpression>MIT</PackageLicenseExpression>
|
||||
<PackageProjectUrl>https://go.microsoft.com/fwlink/?LinkId=392727</PackageProjectUrl>
|
||||
<PackageIconUrl>http://appanacdn.blob.core.windows.net/cdn/icons/aic.png</PackageIconUrl>
|
||||
<RepositoryUrl>https://github.com/Microsoft/ApplicationInsights-dotnet-logging</RepositoryUrl>
|
||||
<RepositoryType>Git</RepositoryType>
|
||||
<PackageType>Dependency</PackageType>
|
||||
<ContentTargetFolders>content</ContentTargetFolders>
|
||||
<PackageReleaseNotes>For the release notes please follow http://go.microsoft.com/fwlink/?LinkId=535037</PackageReleaseNotes>
|
||||
<!-- <PackageOutputPath>Defined in Directory.Build.props</PackageOutputPath> -->
|
||||
<PackageTags>Azure Monitoring Analytics ApplicationInsights Telemetry</PackageTags>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<!-- These Properties are unique to the project and must be set in the csproj -->
|
||||
<PackageId>UNDEFINED</PackageId>
|
||||
<Title>UNDEFINED</Title>
|
||||
<Description>UNDEFINED</Description>
|
||||
<!-- <PackageTags>$(PackageTags) newTag1 newTag2</PackageTags> -->
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<!-- Disable auto generation of package attributes. This resolves the 'Duplicate attribute' error.
|
||||
Common cause is a hidden AssemblyInfo.cs file in a project -->
|
||||
<GenerateAssemblyVersionAttribute>false</GenerateAssemblyVersionAttribute>
|
||||
<GenerateAssemblyFileVersionAttribute>false</GenerateAssemblyFileVersionAttribute>
|
||||
<GenerateAssemblyInformationalVersionAttribute>false</GenerateAssemblyInformationalVersionAttribute>
|
||||
<GenerateAssemblyDescriptionAttribute>false</GenerateAssemblyDescriptionAttribute>
|
||||
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
|
||||
<GenerateAssemblyTitleAttribute>false</GenerateAssemblyTitleAttribute>
|
||||
</PropertyGroup>
|
||||
</Project>
|
|
@ -1,20 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project=".\Directory.Build.props" />
|
||||
|
||||
<ItemGroup>
|
||||
<Solution Include="Logging.sln" />
|
||||
</ItemGroup>
|
||||
<Target Name="Build">
|
||||
<!-- Generate build version -->
|
||||
<WriteLinesToFile File="$(PreReleaseVersionFileName)" Lines="$(PreReleaseVersion)" Overwrite="true" Encoding="Unicode"/>
|
||||
|
||||
<Exec Command='IF EXIST "%(Solution.FullPath)" nuget.exe restore "%(Solution.FullPath)" -NonInteractive' ContinueOnError="ErrorAndStop"/>
|
||||
|
||||
<MSBuild Projects="@(Solution)" ContinueOnError="ErrorAndStop"/>
|
||||
</Target>
|
||||
<Target Name="Clean">
|
||||
<RemoveDir Directories="$(BinRoot)\$(Configuration)" />
|
||||
<RemoveDir Directories="$(BaseIntermediateOutputPath)" />
|
||||
</Target>
|
||||
</Project>
|
|
@ -6,7 +6,6 @@
|
|||
</PropertyGroup>
|
||||
|
||||
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildProjectDirectory), 'Product.props'))\Product.props" />
|
||||
<Import Project="..\..\Nupkg.props" />
|
||||
|
||||
<PropertyGroup>
|
||||
<RunCodeAnalysis>false</RunCodeAnalysis>
|
||||
|
|
|
@ -6,7 +6,6 @@
|
|||
</PropertyGroup>
|
||||
|
||||
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildProjectDirectory), 'Product.props'))\Product.props" />
|
||||
<Import Project="..\..\Nupkg.props" />
|
||||
|
||||
<PropertyGroup>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
|
|
|
@ -6,7 +6,6 @@
|
|||
</PropertyGroup>
|
||||
|
||||
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildProjectDirectory), 'Product.props'))\Product.props" />
|
||||
<Import Project="..\..\Nupkg.props" />
|
||||
|
||||
<PropertyGroup>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
|
|
|
@ -6,7 +6,6 @@
|
|||
</PropertyGroup>
|
||||
|
||||
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildProjectDirectory), 'Product.props'))\Product.props" />
|
||||
<Import Project="..\..\Nupkg.props" />
|
||||
|
||||
<PropertyGroup>
|
||||
<RunCodeAnalysis>false</RunCodeAnalysis>
|
||||
|
|
|
@ -6,7 +6,6 @@
|
|||
</PropertyGroup>
|
||||
|
||||
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildProjectDirectory), 'Product.props'))\Product.props" />
|
||||
<Import Project="..\..\Nupkg.props" />
|
||||
|
||||
<PropertyGroup>
|
||||
<RunCodeAnalysis>true</RunCodeAnalysis>
|
||||
|
|
|
@ -6,7 +6,6 @@
|
|||
</PropertyGroup>
|
||||
|
||||
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildProjectDirectory), 'Product.props'))\Product.props" />
|
||||
<Import Project="..\..\Nupkg.props" />
|
||||
|
||||
<PropertyGroup>
|
||||
<RunCodeAnalysis>true</RunCodeAnalysis>
|
||||
|
|
|
@ -1,6 +1,9 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), 'Common.props'))\Common.props"/>
|
||||
|
||||
<Import Project="$(PropsRoot)\_Nupkg.props" />
|
||||
|
||||
<PropertyGroup>
|
||||
<!--Removing the SRC folder from the output directory-->
|
||||
<CorePath>$(RelativeOutputPathBase)</CorePath>
|
||||
|
|
|
@ -6,7 +6,6 @@
|
|||
</PropertyGroup>
|
||||
|
||||
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildProjectDirectory), 'Product.props'))\Product.props" />
|
||||
<Import Project="..\..\Nupkg.props" />
|
||||
|
||||
<PropertyGroup>
|
||||
<RunCodeAnalysis>true</RunCodeAnalysis>
|
||||
|
|
|
@ -13,10 +13,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".Solution Items", ".Solutio
|
|||
Common.targets = Common.targets
|
||||
dirs.proj = dirs.proj
|
||||
NuGet.config = NuGet.config
|
||||
Nupkg.props = Nupkg.props
|
||||
Readme.md = Readme.md
|
||||
RunTestsCore.ps1 = RunTestsCore.ps1
|
||||
SetEnv.targets = SetEnv.targets
|
||||
Signing.props = Signing.props
|
||||
EndProjectSection
|
||||
EndProject
|
||||
|
|
|
@ -11,6 +11,13 @@
|
|||
<!-- SourceRoot is used to reference project dependencies (ex: *.props). -->
|
||||
<SourceRoot>$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildProjectDirectory), 'SourceRoot.marker'))</SourceRoot>
|
||||
|
||||
|
||||
<KeysRoot>$(EnlistmentRoot)\.keys</KeysRoot>
|
||||
<PropsRoot>$(EnlistmentRoot)\.props</PropsRoot>
|
||||
<RulesetsRoot>$(EnlistmentRoot)\.rulesets</RulesetsRoot>
|
||||
<TargetsRoot>$(EnlistmentRoot)\.targets</TargetsRoot>
|
||||
|
||||
|
||||
<BinRoot>$(EnlistmentRoot)\..\bin</BinRoot>
|
||||
<BinRoot>$([System.IO.Path]::GetFullPath( $(BinRoot) ))</BinRoot>
|
||||
|
||||
|
@ -34,4 +41,7 @@
|
|||
<IntermediateOutputPath>$([System.IO.Path]::GetFullPath( $(IntermediateOutputPath) ))\</IntermediateOutputPath>
|
||||
</PropertyGroup>
|
||||
|
||||
|
||||
<Import Project="$(PropsRoot)\_GlobalStaticVersion.props" />
|
||||
|
||||
</Project>
|
|
@ -1,40 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup Condition="$(OS) == 'Windows_NT'">
|
||||
<!-- Including this file will generate both the *.nupkg and *.symbols.nupkg -->
|
||||
<!--https://docs.microsoft.com/en-us/nuget/create-packages/symbol-packages-snupkg-->
|
||||
<GeneratePackageOnBuild>True</GeneratePackageOnBuild>
|
||||
<IncludeSymbols>True</IncludeSymbols>
|
||||
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<!-- These are the common properties used when generating the nupkg -->
|
||||
<!-- https://docs.microsoft.com/en-us/nuget/schema/msbuild-targets -->
|
||||
<Company>Microsoft</Company>
|
||||
<Copyright>© Microsoft Corporation. All rights reserved.</Copyright>
|
||||
<!-- <PackageVersion>Defined in GlobalStaticVersion.props</PackageVersion> -->
|
||||
<Authors>Microsoft</Authors>
|
||||
<Owners>Microsoft,AppInsightsSdk</Owners>
|
||||
<PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance>
|
||||
<PackageLicenseExpression>MIT</PackageLicenseExpression>
|
||||
<PackageProjectUrl>https://go.microsoft.com/fwlink/?LinkId=392727</PackageProjectUrl>
|
||||
<PackageIconUrl>https://appanacdn.blob.core.windows.net/cdn/icons/aic.png</PackageIconUrl>
|
||||
<RepositoryUrl>https://github.com/Microsoft/applicationinsights-aspnetcore</RepositoryUrl>
|
||||
<RepositoryType>Git</RepositoryType>
|
||||
<PackageType>Dependency</PackageType>
|
||||
<ContentTargetFolders>content</ContentTargetFolders>
|
||||
<PackageReleaseNotes>For the release notes please follow http://go.microsoft.com/fwlink/?LinkId=535037</PackageReleaseNotes>
|
||||
<!-- <PackageOutputPath>Defined in Directory.Build.props</PackageOutputPath> -->
|
||||
<PackageTags>Azure;Monitoring;Analytics;ApplicationInsights;Telemetry;AppInsights;</PackageTags>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<!-- These Properties are unique to the project and must be set in the csproj -->
|
||||
<PackageId>UNDEFINED</PackageId>
|
||||
<Title>UNDEFINED</Title>
|
||||
<Description>UNDEFINED</Description>
|
||||
<!-- <PackageTags>$(PackageTags) newTag1 newTag2</PackageTags> -->
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="$(SourceRoot)\Nupkg.props" />
|
||||
<Import Project="$(PropsRoot)\_Nupkg.props" />
|
||||
<Import Project="$(SourceRoot)\Signing.props" Condition=" '$(OS)' == 'Windows_NT' " />
|
||||
|
||||
<Target Name="Info_ProductProps" BeforeTargets="Build" >
|
||||
|
@ -8,7 +8,13 @@
|
|||
</Target>
|
||||
|
||||
<PropertyGroup>
|
||||
<VersionPrefix>2.12.0-beta1</VersionPrefix>
|
||||
<!-- Override settings from Nupkg.props. I don't know why the NetCore projects need this and the others don't. -->
|
||||
<GenerateAssemblyVersionAttribute>true</GenerateAssemblyVersionAttribute>
|
||||
<GenerateAssemblyFileVersionAttribute>true</GenerateAssemblyFileVersionAttribute>
|
||||
<GenerateAssemblyInformationalVersionAttribute>true</GenerateAssemblyInformationalVersionAttribute>
|
||||
<GenerateAssemblyDescriptionAttribute>true</GenerateAssemblyDescriptionAttribute>
|
||||
<GenerateAssemblyProductAttribute>true</GenerateAssemblyProductAttribute>
|
||||
<GenerateAssemblyTitleAttribute>true</GenerateAssemblyTitleAttribute>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
|
@ -1,46 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<!--
|
||||
Date when Semantic Version was changed.
|
||||
Update for every public release.
|
||||
-->
|
||||
<SemanticVersionDate>2016-9-28</SemanticVersionDate>
|
||||
<!--
|
||||
Pre-release version is used to distinguish internally built NuGet packages.
|
||||
Pre-release version = Minutes since semantic version was set, divided by 5 (to make it fit in a UInt16).
|
||||
-->
|
||||
<PreReleaseVersion>$([MSBuild]::Divide($([System.DateTime]::Now.Subtract($([System.DateTime]::Parse($(SemanticVersionDate)))).TotalMinutes), 5).ToString('F0'))</PreReleaseVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<Target Name="SetEnvironmentVariables" Condition="'$(IsOfficialBuild)' != 'True'" BeforeTargets="BeforeBuild">
|
||||
<!--
|
||||
Variable DNX_BUILD_VERSION controls the pre-release version of the nuget package that is being generated.
|
||||
It replaces "*" from the version number present in project.json of all the projects corresponding to this solution.
|
||||
-->
|
||||
<SetEnv Name="DNX_BUILD_VERSION" Value="$(PreReleaseVersion)"/>
|
||||
<Message Importance="high" Text=" SetEnvironmentVariables executed on $(ProjectName)"></Message>
|
||||
</Target>
|
||||
|
||||
<UsingTask TaskName="SetEnv"
|
||||
TaskFactory="CodeTaskFactory"
|
||||
AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v12.0.dll">
|
||||
<ParameterGroup>
|
||||
<Name ParameterType="System.String" Required="true" />
|
||||
<Value ParameterType="System.String" Required="true" />
|
||||
</ParameterGroup>
|
||||
<Task>
|
||||
<Reference Include="System" />
|
||||
<Code Type="Fragment" Language="cs">
|
||||
<![CDATA[
|
||||
Environment.SetEnvironmentVariable(Name, Value);
|
||||
|
||||
Log.LogMessage (
|
||||
"Environment varible is set, name={0}, value:{1}",
|
||||
Name,
|
||||
Value);
|
||||
]]>
|
||||
</Code>
|
||||
</Task>
|
||||
</UsingTask>
|
||||
</Project>
|
|
@ -1,216 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="Signing.props"/>
|
||||
|
||||
<PropertyGroup>
|
||||
<CliZipFile>$(BUILD_ARTIFACTSTAGINGDIRECTORY)\dotnet-sdk-2.1.4-win-x64.zip</CliZipFile>
|
||||
<CliToolsPath>$(BUILD_ARTIFACTSTAGINGDIRECTORY)\dotnet-sdk-2.1.4-win-x64.latest</CliToolsPath>
|
||||
<!-- Library -->
|
||||
<ProjectToBuild>.\src\Microsoft.ApplicationInsights.AspNetCore\Microsoft.ApplicationInsights.AspNetCore.csproj</ProjectToBuild>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<!--<Solution Include="src\Microsoft.ApplicationInsights.AspNetCore\Microsoft.ApplicationInsights.AspNetCore.xproj" />-->
|
||||
<!-- Tests -->
|
||||
<TestProject Include="test\Microsoft.ApplicationInsights.AspNetCore.Tests\ " />
|
||||
<TestProject Include="test\WebApi.FunctionalTests\ " />
|
||||
<TestProject Include="test\WebApi20.FunctionalTests\ " />
|
||||
<TestProject Include="test\EmptyApp.FunctionalTests\ " />
|
||||
<TestProject Include="test\EmptyApp20.FunctionalTests\ " />
|
||||
<TestProject Include="test\MVCFramework.FunctionalTests\ " />
|
||||
<TestProject Include="test\MVCFramework20.FunctionalTests\ " />
|
||||
</ItemGroup>
|
||||
|
||||
<UsingTask TaskName="DownloadFile" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.Core.dll">
|
||||
<ParameterGroup>
|
||||
<Address ParameterType="System.String" Required="true" />
|
||||
<FileName ParameterType="System.String" Required="true" />
|
||||
</ParameterGroup>
|
||||
<Task>
|
||||
<Reference Include="System" />
|
||||
<Code Type="Fragment" Language="cs">
|
||||
<![CDATA[
|
||||
new System.Net.WebClient().DownloadFile(Address, FileName);
|
||||
]]>
|
||||
</Code>
|
||||
</Task>
|
||||
</UsingTask>
|
||||
|
||||
<UsingTask TaskName="ExtractZipArchive" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.Core.dll">
|
||||
<ParameterGroup>
|
||||
<InputFiles ParameterType="Microsoft.Build.Framework.ITaskItem[]" Required="true" />
|
||||
<OutputPath ParameterType="System.String" Required="true" />
|
||||
<ArchiveFileNameAsRootFolder ParameterType="System.Boolean" Required="false" />
|
||||
<Overwrite ParameterType="System.Boolean" Required="false" />
|
||||
</ParameterGroup>
|
||||
<Task>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.IO.Compression" />
|
||||
<Reference Include="System.IO.Compression.FileSystem" />
|
||||
|
||||
<Using Namespace="System.Diagnostics" />
|
||||
<Using Namespace="System.IO" />
|
||||
<Using Namespace="System.IO.Compression" />
|
||||
<Code Type="Fragment" Language="cs">
|
||||
<![CDATA[
|
||||
foreach (var inputFilePath in InputFiles.Select(f => f.ItemSpec))
|
||||
{
|
||||
using (ZipArchive archive = ZipFile.OpenRead(inputFilePath))
|
||||
{
|
||||
string inputFileName = Path.GetFileName(inputFilePath);
|
||||
if (true == ArchiveFileNameAsRootFolder && true == Overwrite)
|
||||
{
|
||||
DirectoryInfo archiveDirectory = new DirectoryInfo(Path.Combine(OutputPath, inputFileName));
|
||||
if (true == archiveDirectory.Exists)
|
||||
{
|
||||
Log.LogMessage ("Archive root folder already exists, deleting path:{0}", archiveDirectory.FullName);
|
||||
archiveDirectory.Delete(recursive: true);
|
||||
}
|
||||
}
|
||||
|
||||
foreach (ZipArchiveEntry entry in archive.Entries)
|
||||
{
|
||||
string path = ArchiveFileNameAsRootFolder
|
||||
? Path.Combine(OutputPath, inputFileName, entry.FullName)
|
||||
: Path.Combine(OutputPath, entry.FullName);
|
||||
|
||||
FileInfo fileInfo = new FileInfo(path);
|
||||
DirectoryInfo directoryInfo = new DirectoryInfo(fileInfo.DirectoryName);
|
||||
if (false == directoryInfo.Exists)
|
||||
{
|
||||
//Log.LogMessage ("Creating directory for archive entry, path:{0}", directoryInfo.FullName);
|
||||
directoryInfo.Create();
|
||||
}
|
||||
|
||||
//Log.LogMessage("Extracting entry to path:{0}", path);
|
||||
entry.ExtractToFile(path, Overwrite);
|
||||
}
|
||||
}
|
||||
}
|
||||
]]>
|
||||
</Code>
|
||||
</Task>
|
||||
</UsingTask>
|
||||
|
||||
<UsingTask TaskName="InjectXmlLanguage" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.Core.dll">
|
||||
<ParameterGroup>
|
||||
<InputFiles ParameterType="Microsoft.Build.Framework.ITaskItem[]" Required="true" />
|
||||
</ParameterGroup>
|
||||
<Task>
|
||||
<Reference Include="System" />
|
||||
<Using Namespace="System.Diagnostics" />
|
||||
<Using Namespace="System.IO" />
|
||||
<Code Type="Fragment" Language="cs">
|
||||
<![CDATA[
|
||||
Log.LogMessage("Called InjectXmlLanguage");
|
||||
foreach (var inputFilePath in InputFiles.Select(f => f.ItemSpec))
|
||||
{
|
||||
Log.LogMessage("Fixing {0}", inputFilePath);
|
||||
string filePath = inputFilePath;
|
||||
if (filePath.EndsWith(".dll", StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
filePath = filePath.Substring(0, filePath.Length - 3) + "xml";
|
||||
}
|
||||
|
||||
if (filePath.EndsWith(".xml", StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
string[] files = null;
|
||||
int starIndex = filePath.IndexOf('*');
|
||||
if (starIndex >= 0)
|
||||
{
|
||||
string dir = filePath.Substring(0, starIndex);
|
||||
if (string.IsNullOrEmpty(dir))
|
||||
{
|
||||
dir = ".";
|
||||
}
|
||||
|
||||
string file = Path.GetFileName(filePath.Substring(starIndex));
|
||||
files = Directory.GetFiles(dir, file, SearchOption.AllDirectories);
|
||||
}
|
||||
else
|
||||
{
|
||||
files = new[] { filePath };
|
||||
}
|
||||
|
||||
foreach (string fileName in files)
|
||||
{
|
||||
if (File.Exists(fileName))
|
||||
{
|
||||
Log.LogMessage("Processing XML: {0}", fileName);
|
||||
string text = File.ReadAllText(fileName);
|
||||
text = text.Replace("<doc>", "<doc xml:lang=\"en\">");
|
||||
File.WriteAllText(fileName, text);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]]>
|
||||
</Code>
|
||||
</Task>
|
||||
</UsingTask>
|
||||
|
||||
<Target Name="CheckBuildParameters">
|
||||
<Message Importance="high" Text="ComputerName: $(ComputerName)"></Message>
|
||||
<Message Importance="high" Text="User: $(USERDOMAIN)\$(USERNAME)"></Message>
|
||||
<Message Importance="high" Text="RunningInMicroBuild: $(RunningInMicroBuild)"></Message>
|
||||
<Message Importance="high" Text="Intermediate Output Path: $(BaseIntermediateOutputPath)"></Message>
|
||||
<Message Importance="high" Text="Bin Root: $(BinRoot)"></Message>
|
||||
<Message Importance="high" Text="Configuration: $(Configuration)"></Message>
|
||||
<Message Importance="high" Text="CLI Zip: $(CliZipFile)"></Message>
|
||||
<Message Importance="high" Text="CLI Tools Path: $(CliToolsPath)"></Message>
|
||||
<Message Importance="high" Text="Run Tests: $(RunTests)"></Message>
|
||||
<Message Importance="high" Text="Sign Assembly: $(SignAssembly)"></Message>
|
||||
</Target>
|
||||
|
||||
<Target Name="DownloadCLI">
|
||||
<!--<DownloadFile Address="https://download.microsoft.com/download/E/7/8/E782433E-7737-4E6C-BFBF-290A0A81C3D7/dotnet-sdk-2.1.4-win-x64.zip" FileName="$(CliZipFile)" />-->
|
||||
<DownloadFile Address="https://download.microsoft.com/download/1/1/5/115B762D-2B41-4AF3-9A63-92D9680B9409/dotnet-sdk-2.1.4-win-x64.zip" FileName="$(CliZipFile)" />
|
||||
<ExtractZipArchive InputFiles="$(CliZipFile)" OutputPath="$(CliToolsPath)" ArchiveFileNameAsRootFolder="false" Overwrite="true" />
|
||||
</Target>
|
||||
|
||||
<Target Name="ClearNugetCache">
|
||||
<Exec Command=".\nuget.exe locals all -clear" ContinueOnError="ErrorAndStop" />
|
||||
</Target>
|
||||
|
||||
<Target Name="Build" DependsOnTargets="CheckBuildParameters;DownloadCLI">
|
||||
<Exec Command='"$(CliToolsPath)\dotnet.exe" --version' />
|
||||
<Exec Command='"nuget.exe" restore' ContinueOnError="ErrorAndStop" />
|
||||
<Exec Command='"$(CliToolsPath)\dotnet.exe" build $(ProjectToBuild) -c $(Configuration)' ContinueOnError="ErrorAndStop" />
|
||||
<Exec Command='"$(CliToolsPath)\dotnet.exe" build %(TestProject.Identity) -c $(Configuration)' ContinueOnError="ErrorAndStop" />
|
||||
</Target>
|
||||
|
||||
<Target Name="Test" AfterTargets="Build" DependsOnTargets="Build">
|
||||
<Message Condition="$(RunTests) != '' And $(RunTests)" Importance="high" Text="Running tests..."></Message>
|
||||
<Exec Condition="$(RunTests) != '' And $(RunTests)" Command='"$(CliToolsPath)\dotnet.exe" test -l trx' WorkingDirectory='%(TestProject.Identity)' ContinueOnError="ErrorAndContinue" />
|
||||
</Target>
|
||||
|
||||
<Target Name="Clean">
|
||||
<RemoveDir Directories="$(BinRoot)\$(Configuration)" />
|
||||
<RemoveDir Directories="$(BaseIntermediateOutputPath)" />
|
||||
<RemoveDir Directories="$(BUILD_ARTIFACTSTAGINGDIRECTORY)\dotnet-sdk-2.1.4-win-x64.latest" />
|
||||
<Delete Files="$(BUILD_ARTIFACTSTAGINGDIRECTORY)\dotnet-sdk-2.1.4-win-x64.zip" />
|
||||
</Target>
|
||||
|
||||
<Target Name="AfterBuild" AfterTargets="Test" DependsOnTargets="Test">
|
||||
<ItemGroup>
|
||||
<FilesToSign Include="**\Microsoft.ApplicationInsights.AspNetCore.dll">
|
||||
<Authenticode Condition="'%(FilesToSign.Authenticode)' == ''">Microsoft</Authenticode>
|
||||
<StrongName Condition="'%(FilesToSign.StrongName)' == ''">MsSharedLib72</StrongName>
|
||||
</FilesToSign>
|
||||
</ItemGroup>
|
||||
<Message Importance="high" Text="Files to sign:"></Message>
|
||||
<Message Importance="high" Text="--> File:%(FilesToSign.FileName)%(FilesToSign.Extension)
|
||||
--> BinariesDirectory:$([System.IO.Path]::GetDirectoryName(%(FilesToSign.FullPath))) --> Authenticode:%(FilesToSign.Authenticode)"></Message>
|
||||
<ItemGroup>
|
||||
<DocumentationFiles Include="**\Microsoft.ApplicationInsights.AspNetCore.xml"></DocumentationFiles>
|
||||
</ItemGroup>
|
||||
</Target>
|
||||
|
||||
<Target Name="FixXmlDocumentation" AfterTargets="AfterBuild" DependsOnTargets="AfterBuild">
|
||||
<InjectXmlLanguage InputFiles="@(DocumentationFiles)" />
|
||||
</Target>
|
||||
|
||||
<Target Name="PackageNuGet" AfterTargets="SignFiles" DependsOnTargets="AfterBuild;FixXmlDocumentation;SignFiles">
|
||||
<Exec Command='"$(CliToolsPath)\dotnet.exe" pack $(ProjectToBuild) -c $(Configuration)' ContinueOnError="ErrorAndStop" />
|
||||
</Target>
|
||||
</Project>
|
|
@ -4,8 +4,6 @@
|
|||
<!-- It defines common build paths and infrastructure. -->
|
||||
<!-- Other products / repositories using the same build pattern will have their own copy of copy this file -->
|
||||
|
||||
<Import Project=".\GlobalStaticVersion.props" />
|
||||
|
||||
<PropertyGroup>
|
||||
<!-- The common project structure looks like this: -->
|
||||
<!-- d:\DDGit\ -->
|
||||
|
@ -44,6 +42,13 @@
|
|||
<EnlistmentRoot>$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildProjectDirectory), 'EnlistmentRoot.marker'))</EnlistmentRoot>
|
||||
<SourceRoot>$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildProjectDirectory), 'SourceRoot.marker'))</SourceRoot>
|
||||
|
||||
|
||||
<KeysRoot>$(EnlistmentRoot)\.keys</KeysRoot>
|
||||
<PropsRoot>$(EnlistmentRoot)\.props</PropsRoot>
|
||||
<RulesetsRoot>$(EnlistmentRoot)\.rulesets</RulesetsRoot>
|
||||
<TargetsRoot>$(EnlistmentRoot)\.targets</TargetsRoot>
|
||||
|
||||
|
||||
<BinRoot>$(EnlistmentRoot)\..\bin</BinRoot>
|
||||
<BinRoot>$([System.IO.Path]::GetFullPath( $(BinRoot) ))</BinRoot>
|
||||
|
||||
|
@ -85,6 +90,9 @@
|
|||
<EtwManifestOutDir>$(BinRoot)\$(Configuration)\ETW\</EtwManifestOutDir>
|
||||
</PropertyGroup>
|
||||
|
||||
|
||||
<Import Project="$(PropsRoot)\_GlobalStaticVersion.props" />
|
||||
|
||||
<PropertyGroup>
|
||||
<!-- Enable NuGet package restore during build -->
|
||||
<RestorePackages>true</RestorePackages>
|
||||
|
@ -101,16 +109,5 @@
|
|||
<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>
|
||||
|
||||
</Project>
|
||||
|
|
|
@ -1,33 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<!--
|
||||
Semantic Version. See http://semver.org for full details.
|
||||
Update for every public release.
|
||||
-->
|
||||
<SemanticVersionMajor>2</SemanticVersionMajor>
|
||||
<SemanticVersionMinor>12</SemanticVersionMinor>
|
||||
<SemanticVersionPatch>0</SemanticVersionPatch>
|
||||
<!--Valid values: beta1, beta2, EMPTY for stable -->
|
||||
<PreReleaseMilestone>beta1</PreReleaseMilestone>
|
||||
<!--
|
||||
Date when Semantic Version was changed.
|
||||
Update for every public release.
|
||||
NOTE!!!!!! Do not update when updating PreReleaseMilestone update
|
||||
as it will restart file versions so 2.4.0-beta1 may have higher
|
||||
file version (like 2.4.0.2222) than 2.4.0-beta2 (like 2.4.0.1111)
|
||||
-->
|
||||
<SemanticVersionDate>2019-09-23</SemanticVersionDate>
|
||||
<!--
|
||||
Pre-release version is used to distinguish internally built NuGet packages.
|
||||
Pre-release version = Minutes since semantic version was set, divided by 5 (to make it fit in a UInt16 (max 65535 = ~7 months).
|
||||
-->
|
||||
<PreReleaseVersion Condition="'$(PreReleaseVersion)'==''">$([MSBuild]::Divide($([System.DateTime]::Now.Subtract($([System.DateTime]::Parse($(SemanticVersionDate)))).TotalMinutes), 5).ToString('F0'))</PreReleaseVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(PackageVersion)'==''">
|
||||
<PackageVersion>$(SemanticVersionMajor).$(SemanticVersionMinor).$(SemanticVersionPatch)</PackageVersion>
|
||||
<PackageVersion Condition="'$(PreReleaseMilestone)' != ''">$(PackageVersion)-$(PreReleaseMilestone)</PackageVersion>
|
||||
<PackageVersion Condition="'$(StableRelease)' != 'True'">$(PackageVersion)-build$(PreReleaseVersion)</PackageVersion>
|
||||
</PropertyGroup>
|
||||
</Project>
|
|
@ -1,47 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup Condition="$(OS) == 'Windows_NT'">
|
||||
<!-- Including this file will generate both the *.nupkg and *.symbols.nupkg -->
|
||||
<!--https://docs.microsoft.com/en-us/nuget/create-packages/symbol-packages-snupkg-->
|
||||
<GeneratePackageOnBuild>True</GeneratePackageOnBuild>
|
||||
<IncludeSymbols>True</IncludeSymbols>
|
||||
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<!-- These are the common properties used when generating the nupkg -->
|
||||
<!-- https://docs.microsoft.com/en-us/nuget/schema/msbuild-targets -->
|
||||
<Company>Microsoft</Company>
|
||||
<Copyright>© Microsoft Corporation. All rights reserved.</Copyright>
|
||||
<!-- <PackageVersion>Defined in GlobalStaticVersion.props</PackageVersion> -->
|
||||
<Authors>Microsoft</Authors>
|
||||
<Owners>Microsoft,AppInsightsSdk</Owners>
|
||||
<PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance>
|
||||
<PackageLicenseExpression>MIT</PackageLicenseExpression>
|
||||
<PackageProjectUrl>https://go.microsoft.com/fwlink/?LinkId=392727</PackageProjectUrl>
|
||||
<PackageIconUrl>http://appanacdn.blob.core.windows.net/cdn/icons/aic.png</PackageIconUrl>
|
||||
<RepositoryUrl>https://github.com/Microsoft/ApplicationInsights-dotnet-server</RepositoryUrl>
|
||||
<RepositoryType>Git</RepositoryType>
|
||||
<PackageType>Dependency</PackageType>
|
||||
<ContentTargetFolders>content</ContentTargetFolders>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<!-- These Properties are unique to the project and must be set in the csproj -->
|
||||
<PackageId>UNDEFINED</PackageId>
|
||||
<Title>UNDEFINED</Title>
|
||||
<Description>UNDEFINED</Description>
|
||||
<PackageTags>UNDEFINED</PackageTags>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<!-- Disable auto generation of package attributes. This resolves the 'Duplicate attribute' error.
|
||||
Common cause is a hidden AssemblyInfo.cs file in a project -->
|
||||
<GenerateAssemblyVersionAttribute>false</GenerateAssemblyVersionAttribute>
|
||||
<GenerateAssemblyFileVersionAttribute>false</GenerateAssemblyFileVersionAttribute>
|
||||
<GenerateAssemblyInformationalVersionAttribute>false</GenerateAssemblyInformationalVersionAttribute>
|
||||
<GenerateAssemblyDescriptionAttribute>false</GenerateAssemblyDescriptionAttribute>
|
||||
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
|
||||
<GenerateAssemblyTitleAttribute>false</GenerateAssemblyTitleAttribute>
|
||||
</PropertyGroup>
|
||||
</Project>
|
|
@ -29,6 +29,7 @@
|
|||
<Compile Include="$(MSBuildThisFileDirectory)Implementation\Operation\ObjectInstanceBasedOperationHolderTests.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)Implementation\ServiceBusDiagnosticListenerTests.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)Implementation\EventHubsDiagnosticListenerTests.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)Implementation\SqlClientDiagnosticSourceListenerTestsCopy.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)Implementation\SqlClientDiagnosticSourceListenerTests.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)Implementation\TelemetryDiagnosticSourceListenerTests.cs" />
|
||||
<Compile Include="$(MSBuildThisFileDirectory)OperationDetailsInitializer.cs" />
|
||||
|
|
|
@ -328,84 +328,6 @@ namespace Microsoft.ApplicationInsights.Tests
|
|||
Assert.False(dependencyTelemetry.Success.Value);
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData(SqlClientDiagnosticSourceListener.SqlBeforeExecuteCommand, SqlClientDiagnosticSourceListener.SqlErrorExecuteCommand)]
|
||||
[InlineData(SqlClientDiagnosticSourceListener.SqlMicrosoftBeforeExecuteCommand, SqlClientDiagnosticSourceListener.SqlMicrosoftErrorExecuteCommand)]
|
||||
public void TracksCommandErrorWhenSqlException(string beforeCommand, string errorCommand)
|
||||
{
|
||||
var operationId = Guid.NewGuid();
|
||||
var sqlConnection = new SqlConnection(TestConnectionString);
|
||||
var sqlCommand = sqlConnection.CreateCommand();
|
||||
sqlCommand.CommandText = "select * from orders";
|
||||
|
||||
var beforeExecuteEventData = new
|
||||
{
|
||||
OperationId = operationId,
|
||||
Command = sqlCommand,
|
||||
Timestamp = (long?)1000000L
|
||||
};
|
||||
|
||||
this.fakeSqlClientDiagnosticSource.Write(
|
||||
beforeCommand,
|
||||
beforeExecuteEventData);
|
||||
|
||||
// Need to create SqlException via reflection because ctor is not public!
|
||||
var sqlErrorCtor
|
||||
= typeof(SqlError).GetConstructors(BindingFlags.NonPublic | BindingFlags.Instance)
|
||||
.Single(c => c.GetParameters().Count() == 8);
|
||||
|
||||
var sqlError = sqlErrorCtor.Invoke(
|
||||
new object[]
|
||||
{
|
||||
42, // error number
|
||||
default(byte),
|
||||
default(byte),
|
||||
string.Empty,
|
||||
string.Empty,
|
||||
string.Empty,
|
||||
0,
|
||||
default(Exception)
|
||||
});
|
||||
|
||||
var sqlErrorCollectionCtor
|
||||
= typeof(SqlErrorCollection).GetConstructors(BindingFlags.NonPublic | BindingFlags.Instance)
|
||||
.Single();
|
||||
|
||||
var sqlErrorCollection = sqlErrorCollectionCtor.Invoke(new object[] { });
|
||||
|
||||
typeof(SqlErrorCollection).GetMethod("Add", BindingFlags.NonPublic | BindingFlags.Instance)
|
||||
.Invoke(sqlErrorCollection, new object[] { sqlError });
|
||||
|
||||
var sqlExceptionCtor = typeof(SqlException).GetConstructors(BindingFlags.NonPublic | BindingFlags.Instance)[0];
|
||||
|
||||
var sqlException = (SqlException)sqlExceptionCtor.Invoke(
|
||||
new object[]
|
||||
{
|
||||
"Boom!",
|
||||
sqlErrorCollection,
|
||||
null,
|
||||
Guid.NewGuid()
|
||||
});
|
||||
|
||||
var commandErrorEventData = new
|
||||
{
|
||||
OperationId = operationId,
|
||||
Command = sqlCommand,
|
||||
Exception = (Exception)sqlException,
|
||||
Timestamp = 2000000L
|
||||
};
|
||||
|
||||
this.fakeSqlClientDiagnosticSource.Write(
|
||||
errorCommand,
|
||||
commandErrorEventData);
|
||||
|
||||
var dependencyTelemetry = (DependencyTelemetry)this.sendItems.Single();
|
||||
|
||||
Assert.Equal(commandErrorEventData.Exception.ToInvariantString(), dependencyTelemetry.Properties["Exception"]);
|
||||
Assert.False(dependencyTelemetry.Success.Value);
|
||||
Assert.Equal("42", dependencyTelemetry.ResultCode);
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData(SqlClientDiagnosticSourceListener.SqlBeforeOpenConnection, SqlClientDiagnosticSourceListener.SqlErrorOpenConnection)]
|
||||
[InlineData(SqlClientDiagnosticSourceListener.SqlMicrosoftBeforeOpenConnection, SqlClientDiagnosticSourceListener.SqlMicrosoftErrorOpenConnection)]
|
||||
|
|
|
@ -0,0 +1,170 @@
|
|||
namespace Microsoft.ApplicationInsights.Tests
|
||||
{
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.Data.SqlClient;
|
||||
using System.Diagnostics;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using Microsoft.ApplicationInsights.Channel;
|
||||
using Microsoft.ApplicationInsights.DataContracts;
|
||||
using Microsoft.ApplicationInsights.DependencyCollector.Implementation;
|
||||
using Microsoft.ApplicationInsights.DependencyCollector.Implementation.SqlClientDiagnostics;
|
||||
using Microsoft.ApplicationInsights.Extensibility;
|
||||
using Microsoft.ApplicationInsights.Extensibility.Implementation.Tracing;
|
||||
using Microsoft.ApplicationInsights.W3C.Internal;
|
||||
using Microsoft.ApplicationInsights.Web.TestFramework;
|
||||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
|
||||
#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member
|
||||
|
||||
[TestClass]
|
||||
public class SqlClientDiagnosticSourceListenerTestsCopy : IDisposable
|
||||
{
|
||||
private const string TestConnectionString = "Data Source=(localdb)\\MSSQLLocalDB;Database=master";
|
||||
|
||||
private IList<ITelemetry> sendItems;
|
||||
private StubTelemetryChannel stubTelemetryChannel;
|
||||
private TelemetryConfiguration configuration;
|
||||
private FakeSqlClientDiagnosticSource fakeSqlClientDiagnosticSource;
|
||||
private SqlClientDiagnosticSourceListener sqlClientDiagnosticSourceListener;
|
||||
|
||||
public SqlClientDiagnosticSourceListenerTestsCopy()
|
||||
{
|
||||
this.sendItems = new List<ITelemetry>();
|
||||
this.stubTelemetryChannel = new StubTelemetryChannel { OnSend = item => this.sendItems.Add(item) };
|
||||
|
||||
this.configuration = new TelemetryConfiguration
|
||||
{
|
||||
InstrumentationKey = Guid.NewGuid().ToString(),
|
||||
TelemetryChannel = this.stubTelemetryChannel
|
||||
};
|
||||
|
||||
this.fakeSqlClientDiagnosticSource = new FakeSqlClientDiagnosticSource();
|
||||
this.sqlClientDiagnosticSourceListener = new SqlClientDiagnosticSourceListener(this.configuration);
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
this.sqlClientDiagnosticSourceListener.Dispose();
|
||||
this.fakeSqlClientDiagnosticSource.Dispose();
|
||||
this.configuration.Dispose();
|
||||
this.stubTelemetryChannel.Dispose();
|
||||
|
||||
while (Activity.Current != null)
|
||||
{
|
||||
Activity.Current.Stop();
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// This test was failing in XUnit + Net45, so i converted it to MSTest
|
||||
/// </summary>
|
||||
[TestMethod]
|
||||
public void TracksCommandErrorWhenSqlException_Sql() => this.RunTest(SqlClientDiagnosticSourceListener.SqlBeforeExecuteCommand, SqlClientDiagnosticSourceListener.SqlErrorExecuteCommand);
|
||||
|
||||
/// <summary>
|
||||
/// This test was failing in XUnit + Net45, so i converted it to MSTest
|
||||
/// </summary>
|
||||
[TestMethod]
|
||||
public void TracksCommandErrorWhenSqlException_SqlMicrosoft() => this.RunTest(SqlClientDiagnosticSourceListener.SqlMicrosoftBeforeExecuteCommand, SqlClientDiagnosticSourceListener.SqlMicrosoftErrorExecuteCommand);
|
||||
|
||||
public void RunTest(string beforeCommand, string errorCommand)
|
||||
{
|
||||
var operationId = Guid.NewGuid();
|
||||
var sqlConnection = new SqlConnection(TestConnectionString);
|
||||
var sqlCommand = sqlConnection.CreateCommand();
|
||||
sqlCommand.CommandText = "select * from orders";
|
||||
|
||||
var beforeExecuteEventData = new
|
||||
{
|
||||
OperationId = operationId,
|
||||
Command = sqlCommand,
|
||||
Timestamp = (long?)1000000L
|
||||
};
|
||||
|
||||
this.fakeSqlClientDiagnosticSource.Write(
|
||||
beforeCommand,
|
||||
beforeExecuteEventData);
|
||||
|
||||
// Need to create SqlException via reflection because ctor is not public!
|
||||
var sqlErrorCtor
|
||||
= typeof(SqlError).GetConstructors(BindingFlags.NonPublic | BindingFlags.Instance)
|
||||
.Single(c => c.GetParameters().Count() == 8);
|
||||
|
||||
var sqlError = sqlErrorCtor.Invoke(
|
||||
new object[]
|
||||
{
|
||||
42, // error number
|
||||
default(byte),
|
||||
default(byte),
|
||||
string.Empty,
|
||||
string.Empty,
|
||||
string.Empty,
|
||||
0,
|
||||
default(Exception)
|
||||
});
|
||||
|
||||
var sqlErrorCollectionCtor
|
||||
= typeof(SqlErrorCollection).GetConstructors(BindingFlags.NonPublic | BindingFlags.Instance)
|
||||
.Single();
|
||||
|
||||
var sqlErrorCollection = sqlErrorCollectionCtor.Invoke(new object[] { });
|
||||
|
||||
typeof(SqlErrorCollection).GetMethod("Add", BindingFlags.NonPublic | BindingFlags.Instance)
|
||||
.Invoke(sqlErrorCollection, new object[] { sqlError });
|
||||
|
||||
var sqlExceptionCtor = typeof(SqlException).GetConstructors(BindingFlags.NonPublic | BindingFlags.Instance)[0];
|
||||
|
||||
var sqlException = (SqlException)sqlExceptionCtor.Invoke(
|
||||
new object[]
|
||||
{
|
||||
"Boom!",
|
||||
sqlErrorCollection,
|
||||
null,
|
||||
Guid.NewGuid()
|
||||
});
|
||||
|
||||
var commandErrorEventData = new
|
||||
{
|
||||
OperationId = operationId,
|
||||
Command = sqlCommand,
|
||||
Exception = (Exception)sqlException,
|
||||
Timestamp = 2000000L
|
||||
};
|
||||
|
||||
this.fakeSqlClientDiagnosticSource.Write(
|
||||
errorCommand,
|
||||
commandErrorEventData);
|
||||
|
||||
var dependencyTelemetry = (DependencyTelemetry)this.sendItems.Single();
|
||||
|
||||
Assert.AreEqual(commandErrorEventData.Exception.ToInvariantString(), dependencyTelemetry.Properties["Exception"]);
|
||||
Assert.IsFalse(dependencyTelemetry.Success.Value);
|
||||
Assert.AreEqual("42", dependencyTelemetry.ResultCode);
|
||||
}
|
||||
|
||||
private class FakeSqlClientDiagnosticSource : IDisposable
|
||||
{
|
||||
private readonly DiagnosticListener listener;
|
||||
|
||||
public FakeSqlClientDiagnosticSource()
|
||||
{
|
||||
this.listener = new DiagnosticListener(SqlClientDiagnosticSourceListener.DiagnosticListenerName);
|
||||
}
|
||||
|
||||
public void Write(string name, object value)
|
||||
{
|
||||
this.listener.Write(name, value);
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
this.listener.Dispose();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#pragma warning restore CS1591 // Missing XML comment for publicly visible type or member
|
||||
}
|
|
@ -46,9 +46,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".Solution Items", ".Solutio
|
|||
..\Common.props = ..\Common.props
|
||||
..\Directory.Build.props = ..\Directory.Build.props
|
||||
..\dirs.proj = ..\dirs.proj
|
||||
..\GlobalStaticVersion.props = ..\GlobalStaticVersion.props
|
||||
..\NuGet.config = ..\NuGet.config
|
||||
..\Nupkg.props = ..\Nupkg.props
|
||||
Product.props = Product.props
|
||||
EndProjectSection
|
||||
EndProject
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
|
||||
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove('$(MSBuildThisFileDirectory)\..', 'Common.props'))\Common.props" />
|
||||
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove('$(MSBuildThisFileDirectory)\..', 'Nupkg.props'))\Nupkg.props" />
|
||||
<Import Project="$(PropsRoot)\_Nupkg.props" />
|
||||
|
||||
<!--
|
||||
Example of how to do logs:
|
||||
|
|
|
@ -1,6 +1,13 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project=".\GlobalStaticVersion.props" />
|
||||
|
||||
<PropertyGroup>
|
||||
<!-- EnlistmentRoot identifies the root directory of the repo and is used to dermine all other relative paths. -->
|
||||
<EnlistmentRoot>$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildProjectDirectory), 'EnlistmentRoot.marker'))</EnlistmentRoot>
|
||||
<PropsRoot>$(EnlistmentRoot)\.props</PropsRoot>
|
||||
</PropertyGroup>
|
||||
|
||||
<Import Project="$(PropsRoot)\_GlobalStaticVersion.props" />
|
||||
|
||||
<ItemGroup>
|
||||
<Solution Include="Src\Microsoft.ApplicationInsights.Web.sln" />
|
||||
|
@ -14,7 +21,7 @@
|
|||
|
||||
<Target Name="Build">
|
||||
<Exec Command='IF EXIST "%(Solution.FullPath)" nuget.exe restore "%(Solution.FullPath)" -NonInteractive' ContinueOnError="ErrorAndStop"/>
|
||||
<MSBuild Projects="@(Solution)" Targets="Restore;Build" ContinueOnError="ErrorAndStop" Properties="PreReleaseVersion=$(PreReleaseVersion)"/>
|
||||
<MSBuild Projects="@(Solution)" Targets="Restore;Build" ContinueOnError="ErrorAndStop" />
|
||||
</Target>
|
||||
|
||||
<Target Name="Clean">
|
||||
|
|
Загрузка…
Ссылка в новой задаче