diff --git a/.appveyor.yml b/.appveyor.yml new file mode 100644 index 0000000..1dbceb1 --- /dev/null +++ b/.appveyor.yml @@ -0,0 +1,30 @@ +#---------------------------------# +# Build Image # +#---------------------------------# +image: Visual Studio 2017 + +#---------------------------------# +# Build Script # +#---------------------------------# +build_script: + - ps: .\build.ps1 -Target AppVeyor + +# Tests +test: off + +#---------------------------------# +# Branches to build # +#---------------------------------# +branches: + # Whitelist + only: + - develop + - master + - /release/.*/ + - /hotfix/.*/ + +#---------------------------------# +# Build Cache # +#---------------------------------# +cache: +- tools -> setup.cake diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..1ff0c42 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,63 @@ +############################################################################### +# Set default behavior to automatically normalize line endings. +############################################################################### +* text=auto + +############################################################################### +# Set default behavior for command prompt diff. +# +# This is need for earlier builds of msysgit that does not have it on by +# default for csharp files. +# Note: This is only used by command line +############################################################################### +#*.cs diff=csharp + +############################################################################### +# Set the merge driver for project and solution files +# +# Merging from the command prompt will add diff markers to the files if there +# are conflicts (Merging from VS is not affected by the settings below, in VS +# the diff markers are never inserted). Diff markers may cause the following +# file extensions to fail to load in VS. An alternative would be to treat +# these files as binary and thus will always conflict and require user +# intervention with every merge. To do so, just uncomment the entries below +############################################################################### +#*.sln merge=binary +#*.csproj merge=binary +#*.vbproj merge=binary +#*.vcxproj merge=binary +#*.vcproj merge=binary +#*.dbproj merge=binary +#*.fsproj merge=binary +#*.lsproj merge=binary +#*.wixproj merge=binary +#*.modelproj merge=binary +#*.sqlproj merge=binary +#*.wwaproj merge=binary + +############################################################################### +# behavior for image files +# +# image files are treated as binary by default. +############################################################################### +#*.jpg binary +#*.png binary +#*.gif binary + +############################################################################### +# diff behavior for common document formats +# +# Convert binary document formats to text before diffing them. This feature +# is only available from the command line. Turn it on by uncommenting the +# entries below. +############################################################################### +#*.doc diff=astextplain +#*.DOC diff=astextplain +#*.docx diff=astextplain +#*.DOCX diff=astextplain +#*.dot diff=astextplain +#*.DOT diff=astextplain +#*.pdf diff=astextplain +#*.PDF diff=astextplain +#*.rtf diff=astextplain +#*.RTF diff=astextplain diff --git a/.gitignore b/.gitignore index 940794e..ba4e60c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,14 @@ +# Project specific + +BuildArtifacts/ + +# Created by https://www.gitignore.io/api/cake,visualstudio + +### Cake ### +tools/* +!tools/packages.config + +### VisualStudio ### ## Ignore Visual Studio temporary files, build results, and ## files generated by popular Visual Studio add-ons. ## @@ -148,9 +159,11 @@ publish/ # Publish Web Output *.[Pp]ublish.xml *.azurePubxml -# TODO: Comment the next line if you want to checkin your web deploy settings -# but database connection strings (with potential passwords) will be unencrypted -*.pubxml +# TODO: Uncomment the next line to ignore your web deploy settings. +# By default, sensitive information, such as encrypted password +# should be stored in the .pubxml.user file. +#*.pubxml +*.pubxml.user *.publishproj # Microsoft Azure Web App publish settings. Comment the next line if you want to @@ -286,3 +299,9 @@ __pycache__/ *.btm.cs *.odx.cs *.xsd.cs + +### VisualStudio Patch ### +# By default, sensitive information, such as encrypted password +# should be stored in the .pubxml.user file. + +# End of https://www.gitignore.io/api/cake,visualstudio \ No newline at end of file diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..eb79eee --- /dev/null +++ b/.travis.yml @@ -0,0 +1,10 @@ +language: csharp +script: + - ./build.sh -v diagnostic +os: + - linux + - osx +cache: + directories: + - packages + - tools diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..078295e --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,35 @@ +# Contribution Guidelines + +This repository uses [GitFlow] with default configuration. +Development is happening on `develop` branch. + +To contribute: + +* Fork this repository. +* Create a feature branch from `develop`. +* Implement your changes. +* Push your feature branch. +* Create a pull request. + +## Build + +To build this package we are using Cake. + +On Windows PowerShell run: + +```powershell +./build +``` + +On OSX/Linux run: + +```bash +./build.sh +``` + +## Release + +See [Cake.Recipe documentation] how to create a new release of this addin. + +[GitFlow]: (http://nvie.com/posts/a-successful-git-branching-model/) +[Cake.Recipe documentation]: https://cake-contrib.github.io/Cake.Recipe/docs/usage/creating-release \ No newline at end of file diff --git a/GitReleaseManager.yaml b/GitReleaseManager.yaml new file mode 100644 index 0000000..721c1ba --- /dev/null +++ b/GitReleaseManager.yaml @@ -0,0 +1,12 @@ +issue-labels-include: +- Breaking change +- Feature +- Bug +- Improvement +- Documentation +issue-labels-exclude: +- Build +issue-labels-alias: + - name: Documentation + header: Documentation + plural: Documentation \ No newline at end of file diff --git a/LICENSE b/LICENSE index f90383f..09fd0de 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2017 Pascal Berger +Copyright (c) Pascal Berger Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index e6f4380..56e04d1 100644 --- a/README.md +++ b/README.md @@ -1 +1,36 @@ -# Cake.Tfs \ No newline at end of file +# TFS / VSTS support for Cake + +This addin for Cake allows you to work with Team Foundation Server or Visual Studio Team Services. + +[![License](http://img.shields.io/:license-mit-blue.svg)](https://github.com/cake-contrib/Cake.Tfs/blob/feature/build/LICENSE) + +## Information + +| | Stable | Pre-release | +|:--:|:--:|:--:| +|GitHub Release|-|[![GitHub release](https://img.shields.io/github/release/cake-contrib/Cake.Tfs.svg)](https://github.com/cake-contrib/Cake.Tfs/releases/latest)| +|NuGet|[![NuGet](https://img.shields.io/nuget/v/Cake.Tfs.svg)](https://www.nuget.org/packages/Cake.Tfs)|[![NuGet](https://img.shields.io/nuget/vpre/Cake.Tfs.svg)](https://www.nuget.org/packages/Cake.Tfs)| + +## Build Status + +|Develop|Master| +|:--:|:--:| +|[![Build status](https://ci.appveyor.com/api/projects/status/c0akmejs4b136s0o/branch/develop?svg=true)](https://ci.appveyor.com/project/cakecontrib/cake-tfs/branch/develop)|[![Build status](https://ci.appveyor.com/api/projects/status/c0akmejs4b136s0o/branch/master?svg=true)](https://ci.appveyor.com/project/cakecontrib/cake-tfs/branch/master)| + +## Code Coverage + +[![Coverage Status](https://coveralls.io/repos/github/cake-contrib/Cake.Tfs/badge.svg?branch=develop)](https://coveralls.io/github/cake-contrib/Cake.Tfs?branch=develop) + +## Quick Links + +- [Documentation](https://cake-contrib.github.io/Cake.Tfs) + +## Chat Room + +Come join in the conversation about this addin in our Gitter Chat Room + +[![Join the chat at https://gitter.im/cake-contrib/Lobby](https://badges.gitter.im/cake-contrib/Lobby.svg)](https://gitter.im/cake-contrib/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) + +## Contributing + +Contributions are welcome. See [Contribution Guidelines](CONTRIBUTING.md). \ No newline at end of file diff --git a/build.ps1 b/build.ps1 new file mode 100644 index 0000000..bdfb32b --- /dev/null +++ b/build.ps1 @@ -0,0 +1,184 @@ +########################################################################## +# This is the Cake bootstrapper script for PowerShell. +# This file was downloaded from https://github.com/cake-build/resources +# Feel free to change this file to fit your needs. +########################################################################## + +<# +.SYNOPSIS +This is a Powershell script to bootstrap a Cake build. +.DESCRIPTION +This Powershell script will download NuGet if missing, restore NuGet tools (including Cake) +and execute your Cake build script with the parameters you provide. +.PARAMETER Script +The build script to execute. +.PARAMETER Target +The build script target to run. +.PARAMETER Configuration +The build configuration to use. +.PARAMETER Verbosity +Specifies the amount of information to be displayed. +.PARAMETER Experimental +Tells Cake to use the latest Roslyn release. +.PARAMETER WhatIf +Performs a dry run of the build script. +No tasks will be executed. +.PARAMETER Mono +Tells Cake to use the Mono scripting engine. +.PARAMETER SkipToolPackageRestore +Skips restoring of packages. +.PARAMETER ScriptArgs +Remaining arguments are added here. +.LINK +http://cakebuild.net +#> + +[CmdletBinding()] +Param( + [string]$Script = "setup.cake", + [string]$Target = "Default", + [ValidateSet("Release", "Debug")] + [string]$Configuration = "Release", + [ValidateSet("Quiet", "Minimal", "Normal", "Verbose", "Diagnostic")] + [string]$Verbosity = "Verbose", + [switch]$Experimental, + [Alias("DryRun","Noop")] + [switch]$WhatIf, + [switch]$Mono, + [switch]$SkipToolPackageRestore, + [Parameter(Position=0,Mandatory=$false,ValueFromRemainingArguments=$true)] + [string[]]$ScriptArgs +) + +[Reflection.Assembly]::LoadWithPartialName("System.Security") | Out-Null +function MD5HashFile([string] $filePath) +{ + if ([string]::IsNullOrEmpty($filePath) -or !(Test-Path $filePath -PathType Leaf)) + { + return $null + } + + [System.IO.Stream] $file = $null; + [System.Security.Cryptography.MD5] $md5 = $null; + try + { + $md5 = [System.Security.Cryptography.MD5]::Create() + $file = [System.IO.File]::OpenRead($filePath) + return [System.BitConverter]::ToString($md5.ComputeHash($file)) + } + finally + { + if ($file -ne $null) + { + $file.Dispose() + } + } +} + +Write-Host "Preparing to run build script..." + +if(!$PSScriptRoot){ + $PSScriptRoot = Split-Path $MyInvocation.MyCommand.Path -Parent +} + +$TOOLS_DIR = Join-Path $PSScriptRoot "tools" +$NUGET_EXE = Join-Path $TOOLS_DIR "nuget.exe" +$CAKE_EXE = Join-Path $TOOLS_DIR "Cake/Cake.exe" +$NUGET_URL = "https://dist.nuget.org/win-x86-commandline/latest/nuget.exe" +$PACKAGES_CONFIG = Join-Path $TOOLS_DIR "packages.config" +$PACKAGES_CONFIG_MD5 = Join-Path $TOOLS_DIR "packages.config.md5sum" + +# Should we use mono? +$UseMono = ""; +if($Mono.IsPresent) { + Write-Verbose -Message "Using the Mono based scripting engine." + $UseMono = "-mono" +} + +# Should we use the new Roslyn? +$UseExperimental = ""; +if($Experimental.IsPresent -and !($Mono.IsPresent)) { + Write-Verbose -Message "Using experimental version of Roslyn." + $UseExperimental = "-experimental" +} + +# Is this a dry run? +$UseDryRun = ""; +if($WhatIf.IsPresent) { + $UseDryRun = "-dryrun" +} + +# Make sure tools folder exists +if ((Test-Path $PSScriptRoot) -and !(Test-Path $TOOLS_DIR)) { + Write-Verbose -Message "Creating tools directory..." + New-Item -Path $TOOLS_DIR -Type directory | out-null +} + +# Make sure that packages.config exist. +if (!(Test-Path $PACKAGES_CONFIG)) { + Write-Verbose -Message "Downloading packages.config..." + try { (New-Object System.Net.WebClient).DownloadFile("http://cakebuild.net/download/bootstrapper/packages", $PACKAGES_CONFIG) } catch { + Throw "Could not download packages.config." + } +} + +# Try find NuGet.exe in path if not exists +if (!(Test-Path $NUGET_EXE)) { + Write-Verbose -Message "Trying to find nuget.exe in PATH..." + $existingPaths = $Env:Path -Split ';' | Where-Object { (![string]::IsNullOrEmpty($_)) -and (Test-Path $_) } + $NUGET_EXE_IN_PATH = Get-ChildItem -Path $existingPaths -Filter "nuget.exe" | Select -First 1 + if ($NUGET_EXE_IN_PATH -ne $null -and (Test-Path $NUGET_EXE_IN_PATH.FullName)) { + Write-Verbose -Message "Found in PATH at $($NUGET_EXE_IN_PATH.FullName)." + $NUGET_EXE = $NUGET_EXE_IN_PATH.FullName + } +} + +# Try download NuGet.exe if not exists +if (!(Test-Path $NUGET_EXE)) { + Write-Verbose -Message "Downloading NuGet.exe..." + try { + (New-Object System.Net.WebClient).DownloadFile($NUGET_URL, $NUGET_EXE) + } catch { + Throw "Could not download NuGet.exe." + } +} + +# Save nuget.exe path to environment to be available to child processed +$ENV:NUGET_EXE = $NUGET_EXE + +# Restore tools from NuGet? +if(-Not $SkipToolPackageRestore.IsPresent) { + Push-Location + Set-Location $TOOLS_DIR + + # Check for changes in packages.config and remove installed tools if true. + [string] $md5Hash = MD5HashFile($PACKAGES_CONFIG) + if((!(Test-Path $PACKAGES_CONFIG_MD5)) -Or + ($md5Hash -ne (Get-Content $PACKAGES_CONFIG_MD5 ))) { + Write-Verbose -Message "Missing or changed package.config hash..." + Remove-Item * -Recurse -Exclude packages.config,nuget.exe + } + + Write-Verbose -Message "Restoring tools from NuGet..." + $NuGetOutput = Invoke-Expression "&`"$NUGET_EXE`" install -ExcludeVersion -PreRelease -OutputDirectory `"$TOOLS_DIR`" -Source https://www.myget.org/F/cake/api/v3/index.json" + + if ($LASTEXITCODE -ne 0) { + Throw "An error occured while restoring NuGet tools." + } + else + { + $md5Hash | Out-File $PACKAGES_CONFIG_MD5 -Encoding "ASCII" + } + Write-Verbose -Message ($NuGetOutput | out-string) + Pop-Location +} + +# Make sure that Cake has been installed. +if (!(Test-Path $CAKE_EXE)) { + Throw "Could not find Cake.exe at $CAKE_EXE" +} + +# Start Cake +Write-Host "Running build script..." +Invoke-Expression "& `"$CAKE_EXE`" `"$Script`" -target=`"$Target`" -configuration=`"$Configuration`" -verbosity=`"$Verbosity`" $UseMono $UseDryRun $UseExperimental $ScriptArgs" +exit $LASTEXITCODE \ No newline at end of file diff --git a/build.sh b/build.sh new file mode 100644 index 0000000..a541ec1 --- /dev/null +++ b/build.sh @@ -0,0 +1,82 @@ +#!/usr/bin/env bash +############################################################### +# This is the Cake bootstrapper script that is responsible for +# downloading Cake and all specified tools from NuGet. +############################################################### + +# Define directories. +SCRIPT_DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) +TOOLS_DIR=$SCRIPT_DIR/tools +NUGET_EXE=$TOOLS_DIR/nuget.exe +CAKE_EXE=$TOOLS_DIR/Cake/Cake.exe + +# Define default arguments. +SCRIPT="setup.cake" +TARGET="Default" +CONFIGURATION="Release" +VERBOSITY="verbose" +DRYRUN= +SHOW_VERSION=false +SCRIPT_ARGUMENTS=() + +# Parse arguments. +for i in "$@"; do + case $1 in + -s|--script) SCRIPT="$2"; shift ;; + -t|--target) TARGET="$2"; shift ;; + -c|--configuration) CONFIGURATION="$2"; shift ;; + -v|--verbosity) VERBOSITY="$2"; shift ;; + -d|--dryrun) DRYRUN="-dryrun" ;; + --version) SHOW_VERSION=true ;; + --) shift; SCRIPT_ARGUMENTS+=("$@"); break ;; + *) SCRIPT_ARGUMENTS+=("$1") ;; + esac + shift +done + +# Make sure the tools folder exist. +if [ ! -d $TOOLS_DIR ]; then + mkdir $TOOLS_DIR +fi + +# Make sure that packages.config exist. +if [ ! -f $TOOLS_DIR/packages.config ]; then + echo "Downloading packages.config..." + curl -Lsfo $TOOLS_DIR/packages.config http://cakebuild.net/bootstrapper/packages + if [ $? -ne 0 ]; then + echo "An error occured while downloading packages.config." + exit 1 + fi +fi + +# Download NuGet if it does not exist. +if [ ! -f $NUGET_EXE ]; then + echo "Downloading NuGet..." + curl -Lsfo $NUGET_EXE https://dist.nuget.org/win-x86-commandline/latest/nuget.exe + if [ $? -ne 0 ]; then + echo "An error occured while downloading nuget.exe." + exit 1 + fi +fi + +# Restore tools from NuGet. +pushd $TOOLS_DIR >/dev/null +mono $NUGET_EXE install -ExcludeVersion -PreRelease -Source https://www.myget.org/F/cake/api/v3/index.json +if [ $? -ne 0 ]; then + echo "Could not restore NuGet packages." + exit 1 +fi +popd >/dev/null + +# Make sure that Cake has been installed. +if [ ! -f $CAKE_EXE ]; then + echo "Could not find Cake.exe at '$CAKE_EXE'." + exit 1 +fi + +# Start Cake +if $SHOW_VERSION; then + exec mono $CAKE_EXE -version +else + exec mono $CAKE_EXE $SCRIPT -verbosity=$VERBOSITY -configuration=$CONFIGURATION -target=$TARGET $DRYRUN "${SCRIPT_ARGUMENTS[@]}" +fi diff --git a/nuspec/nuget/Cake.Tfs.nuspec b/nuspec/nuget/Cake.Tfs.nuspec new file mode 100644 index 0000000..a801e9d --- /dev/null +++ b/nuspec/nuget/Cake.Tfs.nuspec @@ -0,0 +1,26 @@ + + + + Cake.Tfs + Cake.Tfs + 0.0.0 + Pascal Berger + pascalberger, cake-contrib + Addin for working with Team Foundation Server or Visual Studio Team Services for the Cake build automation system + +This addin for Cake allows you to work with Team Foundation Server or Visual Studio Team Services. + + https://github.com/cake-contrib/Cake.Tfs/blob/develop/LICENSE + http://cake-contrib.github.io/Cake.Tfs/ + https://cdn.rawgit.com/cake-contrib/graphics/a5cf0f881c390650144b2243ae551d5b9f836196/png/cake-contrib-medium.png + false + Copyright © Pascal Berger + Cake Script Team-Foundation-Server TFS Visual-Studio-Team-Services VSTS + https://github.com/cake-contrib/Cake.Tfs/releases/tag/0.1.0 + + + + + + + \ No newline at end of file diff --git a/setup.cake b/setup.cake new file mode 100644 index 0000000..e696da9 --- /dev/null +++ b/setup.cake @@ -0,0 +1,23 @@ +#load nuget:https://www.myget.org/F/cake-contrib/api/v2?package=Cake.Recipe&prerelease + +Environment.SetVariableNames(); + +BuildParameters.SetParameters( + context: Context, + buildSystem: BuildSystem, + sourceDirectoryPath: "./src", + title: "Cake.Tfs", + repositoryOwner: "cake-contrib", + repositoryName: "Cake.Tfs", + appVeyorAccountName: "cakecontrib"); + +BuildParameters.PrintParameters(Context); + +ToolSettings.SetToolSettings( + context: Context, + dupFinderExcludePattern: new string[] { BuildParameters.RootDirectoryPath + "/src/Cake.Tfs.Tests/*.cs" }, + testCoverageFilter: "+[*]* -[xunit.*]* -[Cake.Core]* -[*.Tests]* ", + testCoverageExcludeByAttribute: "*.ExcludeFromCodeCoverage*", + testCoverageExcludeByFile: "*/*Designer.cs;*/*.g.cs;*/*.g.i.cs"); + +Build.Run(); diff --git a/src/Cake.Tfs.Tests.ruleset b/src/Cake.Tfs.Tests.ruleset new file mode 100644 index 0000000..f7066c4 --- /dev/null +++ b/src/Cake.Tfs.Tests.ruleset @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/src/Cake.Tfs.Tests/ArgumentChecksTests.cs b/src/Cake.Tfs.Tests/ArgumentChecksTests.cs new file mode 100644 index 0000000..d8b4806 --- /dev/null +++ b/src/Cake.Tfs.Tests/ArgumentChecksTests.cs @@ -0,0 +1,95 @@ +namespace Cake.Tfs.Tests.Authentication +{ + using Xunit; + + public sealed class ArgumentChecksTests + { + public sealed class TheNotNullMethod + { + [Fact] + public void Should_Throw_If_Value_Is_Null() + { + // Given + object value = null; + var parameterName = "foo"; + + // When + var result = Record.Exception(() => value.NotNull(parameterName)); + + // Then + result.IsArgumentNullException(parameterName); + } + + [Fact] + public void Should_Not_Throw_If_Value_Is_Not_Null() + { + // Given + var value = "foo"; + var parameterName = "foo"; + + // When + value.NotNull(parameterName); + + // Then + } + } + + public sealed class TheNotNullOrWhiteSpaceMethod + { + [Fact] + public void Should_Throw_If_Value_Is_Null() + { + // Given + string value = null; + var parameterName = "foo"; + + // When + var result = Record.Exception(() => value.NotNullOrWhiteSpace(parameterName)); + + // Then + result.IsArgumentNullException(parameterName); + } + + [Fact] + public void Should_Throw_If_Value_Is_Empty() + { + // Given + var value = " "; + var parameterName = "foo"; + + // When + var result = Record.Exception(() => value.NotNullOrWhiteSpace(parameterName)); + + // Then + result.IsArgumentOutOfRangeException(parameterName); + } + + [Fact] + public void Should_Throw_If_Value_Is_WhiteSpace() + { + // Given + var value = " "; + var parameterName = "foo"; + + // When + var result = Record.Exception(() => value.NotNullOrWhiteSpace(parameterName)); + + // Then + result.IsArgumentOutOfRangeException(parameterName); + } + + [Fact] + public void Should_Not_Throw_If_Value_Is_Not_Null() + { + // Given + var value = "foo"; + var parameterName = "foo"; + + // When + value.NotNullOrWhiteSpace(parameterName); + + // Then + } + } + } +} diff --git a/src/Cake.Tfs.Tests/Cake.Tfs.Tests.csproj b/src/Cake.Tfs.Tests/Cake.Tfs.Tests.csproj new file mode 100644 index 0000000..9e7ae2e --- /dev/null +++ b/src/Cake.Tfs.Tests/Cake.Tfs.Tests.csproj @@ -0,0 +1,35 @@ + + + + net461 + false + Cake.Tfs + Copyright © Pascal Berger + Tests for the Cake.Tfs addin + Pascal Berger + + + + ..\Cake.Tfs.Tests.ruleset + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Cake.Tfs.Tests/ExceptionAssertExtensions.cs b/src/Cake.Tfs.Tests/ExceptionAssertExtensions.cs new file mode 100644 index 0000000..22b2dea --- /dev/null +++ b/src/Cake.Tfs.Tests/ExceptionAssertExtensions.cs @@ -0,0 +1,33 @@ +namespace Cake.Tfs +{ + using System; + using Xunit; + + /// + /// Extensions for asserting exceptions. + /// + public static class ExceptionAssertExtensions + { + /// + /// Checks if an execption is of type . + /// + /// Exception to check. + /// Expected name of the parameter which has caused the exception. + public static void IsArgumentNullException(this Exception exception, string parameterName) + { + Assert.IsType(exception); + Assert.Equal(parameterName, ((ArgumentNullException)exception).ParamName); + } + + /// + /// Checks if an execption is of type . + /// + /// Exception to check. + /// Expected name of the parameter which has caused the exception. + public static void IsArgumentOutOfRangeException(this Exception exception, string parameterName) + { + Assert.IsType(exception); + Assert.Equal(parameterName, ((ArgumentOutOfRangeException)exception).ParamName); + } + } +} diff --git a/src/Cake.Tfs.Tests/Properties/AssemblyInfo.cs b/src/Cake.Tfs.Tests/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..61e44a3 --- /dev/null +++ b/src/Cake.Tfs.Tests/Properties/AssemblyInfo.cs @@ -0,0 +1,9 @@ +using System.Runtime.InteropServices; + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("28a97671-eecd-40d7-a732-b5ada9341be5")] \ No newline at end of file diff --git a/src/Cake.Tfs.ruleset b/src/Cake.Tfs.ruleset new file mode 100644 index 0000000..cdaa4f5 --- /dev/null +++ b/src/Cake.Tfs.ruleset @@ -0,0 +1,241 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/Cake.Tfs.sln b/src/Cake.Tfs.sln new file mode 100644 index 0000000..12cd71b --- /dev/null +++ b/src/Cake.Tfs.sln @@ -0,0 +1,44 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.27004.2009 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Cake.Tfs", "Cake.Tfs\Cake.Tfs.csproj", "{005C2EED-D4F3-439A-96A0-56727EB429F0}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Cake.Tfs.Tests", "Cake.Tfs.Tests\Cake.Tfs.Tests.csproj", "{28A97671-EECD-40D7-A732-B5ADA9341BE5}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Build", "Build", "{E086EBC9-C1E6-4B49-AFFB-B3F6340886BA}" + ProjectSection(SolutionItems) = preProject + ..\setup.cake = ..\setup.cake + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "nuspec", "nuspec", "{6F7F1BB2-1303-4C80-9384-DCFD944C4810}" + ProjectSection(SolutionItems) = preProject + ..\nuspec\nuget\Cake.Tfs.nuspec = ..\nuspec\nuget\Cake.Tfs.nuspec + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {005C2EED-D4F3-439A-96A0-56727EB429F0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {005C2EED-D4F3-439A-96A0-56727EB429F0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {005C2EED-D4F3-439A-96A0-56727EB429F0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {005C2EED-D4F3-439A-96A0-56727EB429F0}.Release|Any CPU.Build.0 = Release|Any CPU + {28A97671-EECD-40D7-A732-B5ADA9341BE5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {28A97671-EECD-40D7-A732-B5ADA9341BE5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {28A97671-EECD-40D7-A732-B5ADA9341BE5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {28A97671-EECD-40D7-A732-B5ADA9341BE5}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {6F7F1BB2-1303-4C80-9384-DCFD944C4810} = {E086EBC9-C1E6-4B49-AFFB-B3F6340886BA} + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {58CF5AF4-ECA8-4C6B-B179-44F3D534E39B} + EndGlobalSection +EndGlobal diff --git a/src/Cake.Tfs.sln.DotSettings b/src/Cake.Tfs.sln.DotSettings new file mode 100644 index 0000000..7cc51a4 --- /dev/null +++ b/src/Cake.Tfs.sln.DotSettings @@ -0,0 +1,3 @@ + + DO_NOT_SHOW + <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> \ No newline at end of file diff --git a/src/Cake.Tfs/ArgumentChecks.cs b/src/Cake.Tfs/ArgumentChecks.cs new file mode 100644 index 0000000..9f08e31 --- /dev/null +++ b/src/Cake.Tfs/ArgumentChecks.cs @@ -0,0 +1,49 @@ +namespace Cake.Tfs +{ + using System; + using System.Diagnostics; + + /// + /// Common runtime checks that throw upon failure. + /// + internal static class ArgumentChecks + { + /// + /// Throws an exception if the specified parameter's value is null. + /// + /// The type of the parameter. + /// The value of the argument. + /// The name of the parameter to include in any thrown exception. + /// Thrown if is null + [DebuggerStepThrough] + public static void NotNull([ValidatedNotNull]this T value, string parameterName) + where T : class + { + if (value == null) + { + throw new ArgumentNullException(parameterName); + } + } + + /// + /// Throws an exception if the specified parameter's value is null, empty or consists only of white-space characters. + /// + /// The value of the argument. + /// The name of the parameter to include in any thrown exception. + /// Thrown if is null + /// Thrown if is empty or consists only of white-space characters + [DebuggerStepThrough] + public static void NotNullOrWhiteSpace([ValidatedNotNull]this string value, string parameterName) + { + if (value == null) + { + throw new ArgumentNullException(parameterName); + } + + if (string.IsNullOrWhiteSpace(value)) + { + throw new ArgumentOutOfRangeException(parameterName); + } + } + } +} diff --git a/src/Cake.Tfs/Cake.Tfs.csproj b/src/Cake.Tfs/Cake.Tfs.csproj new file mode 100644 index 0000000..656a6e5 --- /dev/null +++ b/src/Cake.Tfs/Cake.Tfs.csproj @@ -0,0 +1,32 @@ + + + + net461 + Addin for working with Team Foundation Server or Visual Studio Team Services for the Cake build automation system + Pascal Berger + Copyright © Pascal Berger + + + + full + true + ..\Cake.Tfs.ruleset + + + + bin\Debug\net461\Cake.Tfs.xml + + + + bin\Release\net461\Cake.Tfs.xml + + + + + + + + + + + \ No newline at end of file diff --git a/src/Cake.Tfs/FodyWeavers.xml b/src/Cake.Tfs/FodyWeavers.xml new file mode 100644 index 0000000..6ea6411 --- /dev/null +++ b/src/Cake.Tfs/FodyWeavers.xml @@ -0,0 +1,9 @@ + + + + + Cake.Core + Costura + + + \ No newline at end of file diff --git a/src/Cake.Tfs/Properties/AssemblyInfo.cs b/src/Cake.Tfs/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..11fa2e7 --- /dev/null +++ b/src/Cake.Tfs/Properties/AssemblyInfo.cs @@ -0,0 +1,14 @@ +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("005c2eed-d4f3-439a-96a0-56727eb429f0")] + +[assembly: CLSCompliant(true)] +[assembly: InternalsVisibleTo("Cake.Tfs.Tests")] \ No newline at end of file diff --git a/src/Cake.Tfs/TfsAliases.cs b/src/Cake.Tfs/TfsAliases.cs new file mode 100644 index 0000000..3ccc74d --- /dev/null +++ b/src/Cake.Tfs/TfsAliases.cs @@ -0,0 +1,12 @@ +namespace Cake.Tfs +{ + using Core.Annotations; + + /// + /// Contains functionality related to Team Foundation Server or Visual Studio Team Services. + /// + [CakeAliasCategory("TFS")] + public static partial class TfsAliases + { + } +} diff --git a/src/Cake.Tfs/TfsException.cs b/src/Cake.Tfs/TfsException.cs new file mode 100644 index 0000000..9007843 --- /dev/null +++ b/src/Cake.Tfs/TfsException.cs @@ -0,0 +1,52 @@ +namespace Cake.Tfs +{ + using System; + using System.Runtime.Serialization; + + /// + /// Represents errors that occur during connecting to TFS. + /// + [Serializable] + public class TfsException : Exception + { + /// + /// Initializes a new instance of the class. + /// + public TfsException() + { + } + + /// + /// Initializes a new instance of the class with a specified error message. + /// + /// The message that describes the error. + public TfsException(string message) + : base(message) + { + } + + /// + /// Initializes a new instance of the class with a specified error message + /// and a reference to the inner exception that is the cause of this exception. + /// + /// The error message that explains the reason for the exception. + /// The exception that is the cause of the current exception, or a null + /// reference if no inner exception is specified. + public TfsException(string message, Exception innerException) + : base(message, innerException) + { + } + + /// + /// Initializes a new instance of the class with serialized data. + /// + /// The that holds the serialized object data about + /// the exception being thrown. + /// The that contains contextual information about + /// the source or destination. + protected TfsException(SerializationInfo info, StreamingContext context) + : base(info, context) + { + } + } +} diff --git a/src/Cake.Tfs/ValidatedNotNullAttribute.cs b/src/Cake.Tfs/ValidatedNotNullAttribute.cs new file mode 100644 index 0000000..e5cf32c --- /dev/null +++ b/src/Cake.Tfs/ValidatedNotNullAttribute.cs @@ -0,0 +1,12 @@ +namespace Cake.Tfs +{ + using System; + + /// + /// Indicates to code analysis that a method validates a particular parameter. + /// + [AttributeUsage(AttributeTargets.Parameter)] + internal sealed class ValidatedNotNullAttribute : Attribute + { + } +} diff --git a/src/Cake.Tfs/app.config b/src/Cake.Tfs/app.config new file mode 100644 index 0000000..95f2b20 --- /dev/null +++ b/src/Cake.Tfs/app.config @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/MigrationBackup/a2fef594/Cake.Tfs.Tests/Cake.Tfs.Tests.csproj b/src/MigrationBackup/a2fef594/Cake.Tfs.Tests/Cake.Tfs.Tests.csproj new file mode 100644 index 0000000..866af49 --- /dev/null +++ b/src/MigrationBackup/a2fef594/Cake.Tfs.Tests/Cake.Tfs.Tests.csproj @@ -0,0 +1,96 @@ + + + + + + + Debug + AnyCPU + {28A97671-EECD-40D7-A732-B5ADA9341BE5} + Library + Properties + Cake.Tfs.Tests + Cake.Tfs.Tests + v4.6.1 + 512 + + + + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\packages\Shouldly.2.8.3\lib\net451\Shouldly.dll + + + + + + + + + + + ..\packages\xunit.abstractions.2.0.1\lib\net35\xunit.abstractions.dll + + + ..\packages\xunit.assert.2.3.1\lib\netstandard1.1\xunit.assert.dll + + + ..\packages\xunit.extensibility.core.2.3.1\lib\netstandard1.1\xunit.core.dll + + + ..\packages\xunit.extensibility.execution.2.3.1\lib\net452\xunit.execution.desktop.dll + + + + + + + + + + + + + + + + + + + + {005c2eed-d4f3-439a-96a0-56727eb429f0} + Cake.Tfs + + + + + + + + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + + + \ No newline at end of file diff --git a/src/MigrationBackup/a2fef594/Cake.Tfs.Tests/NuGetUpgradeLog.html b/src/MigrationBackup/a2fef594/Cake.Tfs.Tests/NuGetUpgradeLog.html new file mode 100644 index 0000000..bf7cd5b --- /dev/null +++ b/src/MigrationBackup/a2fef594/Cake.Tfs.Tests/NuGetUpgradeLog.html @@ -0,0 +1,167 @@ + + + + + NuGetMigrationLog +

+ NuGet Migration Report - Cake.Tfs.Tests

Overview

Migration to PackageReference was completed successfully. Please build and run your solution to verify that all packages are available.
+ If you run into any problems, have feedback, questions, or concerns, please + file an issue on the NuGet GitHub repository.
+ Changed files and this report have been backed up here: + C:\Git\GitHub\Cake.Tfs\src\MigrationBackup\a2fef594\Cake.Tfs.Tests

Packages processed

Top-level dependencies:

Package IdVersion
Shouldly + v2.8.3
xunit + v2.3.1
xunit.analyzers + v0.7.0
xunit.core + v2.3.1
xunit.runner.visualstudio + v2.3.1

Transitive dependencies:

Package IdVersion
xunit.abstractions + v2.0.1
xunit.assert + v2.3.1
xunit.extensibility.core + v2.3.1
xunit.extensibility.execution + v2.3.1

Package compatibility issues

Description
xunit.analyzers + v0.7.0
install.ps1 script will be ignored when the package is installed after the migration.
\ No newline at end of file diff --git a/src/MigrationBackup/a2fef594/Cake.Tfs.Tests/packages.config b/src/MigrationBackup/a2fef594/Cake.Tfs.Tests/packages.config new file mode 100644 index 0000000..411e936 --- /dev/null +++ b/src/MigrationBackup/a2fef594/Cake.Tfs.Tests/packages.config @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/src/MigrationBackup/e5e2b080/Cake.Tfs/Cake.Tfs.csproj b/src/MigrationBackup/e5e2b080/Cake.Tfs/Cake.Tfs.csproj new file mode 100644 index 0000000..c0eb198 --- /dev/null +++ b/src/MigrationBackup/e5e2b080/Cake.Tfs/Cake.Tfs.csproj @@ -0,0 +1,199 @@ + + + + + Debug + AnyCPU + {005C2EED-D4F3-439A-96A0-56727EB429F0} + Library + Properties + Cake.Tfs + Cake.Tfs + v4.6.1 + 512 + + + + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + bin\Debug\Cake.Tfs.xml + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + bin\Release\Cake.Tfs.xml + + + + ..\packages\Cake.Core.0.22.0\lib\net46\Cake.Core.dll + + + ..\packages\Costura.Fody.1.6.2\lib\dotnet\Costura.dll + False + + + ..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.3.13.5\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.dll + + + ..\packages\Microsoft.IdentityModel.Clients.ActiveDirectory.3.13.5\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.Platform.dll + + + ..\packages\WindowsAzure.ServiceBus.3.3.2\lib\net45-full\Microsoft.ServiceBus.dll + + + ..\packages\Microsoft.TeamFoundationServer.Client.15.112.1\lib\net45\Microsoft.TeamFoundation.Build2.WebApi.dll + + + ..\packages\Microsoft.TeamFoundationServer.Client.15.112.1\lib\net45\Microsoft.TeamFoundation.Chat.WebApi.dll + + + ..\packages\Microsoft.VisualStudio.Services.Client.15.112.1\lib\net45\Microsoft.TeamFoundation.Common.dll + + + ..\packages\Microsoft.TeamFoundationServer.Client.15.112.1\lib\net45\Microsoft.TeamFoundation.Core.WebApi.dll + + + ..\packages\Microsoft.TeamFoundationServer.Client.15.112.1\lib\net45\Microsoft.TeamFoundation.Dashboards.WebApi.dll + + + ..\packages\Microsoft.TeamFoundation.DistributedTask.Common.15.112.1\lib\net45\Microsoft.TeamFoundation.DistributedTask.Common.Contracts.dll + + + ..\packages\Microsoft.TeamFoundationServer.Client.15.112.1\lib\net45\Microsoft.TeamFoundation.Policy.WebApi.dll + + + ..\packages\Microsoft.TeamFoundationServer.Client.15.112.1\lib\net45\Microsoft.TeamFoundation.SourceControl.WebApi.dll + + + ..\packages\Microsoft.TeamFoundationServer.Client.15.112.1\lib\net45\Microsoft.TeamFoundation.Test.WebApi.dll + + + ..\packages\Microsoft.TeamFoundationServer.Client.15.112.1\lib\net45\Microsoft.TeamFoundation.TestManagement.WebApi.dll + + + ..\packages\Microsoft.TeamFoundationServer.Client.15.112.1\lib\net45\Microsoft.TeamFoundation.Work.WebApi.dll + + + ..\packages\Microsoft.TeamFoundationServer.Client.15.112.1\lib\net45\Microsoft.TeamFoundation.WorkItemTracking.WebApi.dll + + + ..\packages\Microsoft.VisualStudio.Services.InteractiveClient.15.112.1\lib\net45\Microsoft.VisualStudio.Services.Client.Interactive.dll + + + ..\packages\Microsoft.VisualStudio.Services.Client.15.112.1\lib\net45\Microsoft.VisualStudio.Services.Common.dll + + + ..\packages\Microsoft.VisualStudio.Services.Client.15.112.1\lib\net45\Microsoft.VisualStudio.Services.WebApi.dll + + + ..\packages\Microsoft.Win32.Primitives.4.0.1\lib\net46\Microsoft.Win32.Primitives.dll + + + ..\packages\Newtonsoft.Json.10.0.3\lib\net45\Newtonsoft.Json.dll + + + + + + ..\packages\System.Diagnostics.DiagnosticSource.4.0.0\lib\net46\System.Diagnostics.DiagnosticSource.dll + + + ..\packages\System.IdentityModel.Tokens.Jwt.4.0.2.206221351\lib\net45\System.IdentityModel.Tokens.Jwt.dll + + + ..\packages\System.Net.Http.4.1.0\lib\net46\System.Net.Http.dll + + + ..\packages\Microsoft.AspNet.WebApi.Client.5.2.3\lib\net45\System.Net.Http.Formatting.dll + + + + ..\packages\System.Runtime.Serialization.Primitives.4.1.1\lib\net46\System.Runtime.Serialization.Primitives.dll + + + ..\packages\System.Security.Cryptography.Algorithms.4.2.0\lib\net461\System.Security.Cryptography.Algorithms.dll + + + ..\packages\System.Security.Cryptography.Encoding.4.0.0\lib\net46\System.Security.Cryptography.Encoding.dll + True + + + ..\packages\System.Security.Cryptography.Primitives.4.0.0\lib\net46\System.Security.Cryptography.Primitives.dll + True + + + ..\packages\System.Security.Cryptography.X509Certificates.4.1.0\lib\net461\System.Security.Cryptography.X509Certificates.dll + + + + ..\packages\Microsoft.Tpl.Dataflow.4.5.24\lib\portable-net45+win8+wpa81\System.Threading.Tasks.Dataflow.dll + True + + + + + + + + ..\packages\TfsUrlParser.1.2.0\lib\net40\TfsUrlParser.dll + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + + + \ No newline at end of file diff --git a/src/MigrationBackup/e5e2b080/Cake.Tfs/NuGetUpgradeLog.html b/src/MigrationBackup/e5e2b080/Cake.Tfs/NuGetUpgradeLog.html new file mode 100644 index 0000000..e49bd6b --- /dev/null +++ b/src/MigrationBackup/e5e2b080/Cake.Tfs/NuGetUpgradeLog.html @@ -0,0 +1,216 @@ + + + + + NuGetMigrationLog +

+ NuGet Migration Report - Cake.Tfs

Overview

Migration to PackageReference was completed successfully. Please build and run your solution to verify that all packages are available.
+ If you run into any problems, have feedback, questions, or concerns, please + file an issue on the NuGet GitHub repository.
+ Changed files and this report have been backed up here: + C:\Git\GitHub\Cake.Tfs\src\MigrationBackup\e5e2b080\Cake.Tfs

Packages processed

Top-level dependencies:

Package IdVersion
Cake.Core + v0.22.0
Costura.Fody + v1.6.2
Desktop.Analyzers + v1.1.0
Fody + v2.2.1
Microsoft.AnalyzerPowerPack + v1.1.0
Microsoft.AspNet.WebApi.Client + v5.2.3
Microsoft.CodeAnalysis.FxCopAnalyzers + v1.1.0
Microsoft.TeamFoundationServer.Client + v15.112.1
Microsoft.VisualStudio.Services.InteractiveClient + v15.112.1
Newtonsoft.Json + v10.0.3
StyleCop.Analyzers + v1.0.2
System.Net.Http + v4.1.0
System.Runtime.Analyzers + v1.1.0
System.Runtime.InteropServices.Analyzers + v1.1.0
System.Security.Cryptography.Hashing.Algorithms.Analyzers + v1.1.0
System.Text.RegularExpressions + v4.1.0
TfsUrlParser + v1.2.0

Transitive dependencies:

Package IdVersion
Microsoft.IdentityModel.Clients.ActiveDirectory + v3.13.5
Microsoft.TeamFoundation.DistributedTask.Common + v15.112.1
Microsoft.Tpl.Dataflow + v4.5.24
Microsoft.VisualStudio.Services.Client + v15.112.1
Microsoft.Win32.Primitives + v4.0.1
System.Collections + v4.0.11
System.Collections.Concurrent + v4.0.12
System.Diagnostics.Debug + v4.0.11
System.Diagnostics.DiagnosticSource + v4.0.0
System.Globalization + v4.0.11
System.IdentityModel.Tokens.Jwt + v4.0.2.206221351
System.IO + v4.1.0
System.Linq + v4.1.0
System.Net.Primitives + v4.0.11
System.Reflection + v4.1.0
System.Reflection.Extensions + v4.0.1
System.Runtime + v4.1.0
System.Runtime.Extensions + v4.1.0
System.Runtime.InteropServices + v4.1.0
System.Runtime.Serialization.Json + v4.0.2
System.Runtime.Serialization.Primitives + v4.1.1
System.Security.Cryptography.Algorithms + v4.2.0
System.Security.Cryptography.Encoding + v4.0.0
System.Security.Cryptography.Primitives + v4.0.0
System.Security.Cryptography.X509Certificates + v4.1.0
System.Text.Encoding + v4.0.11
System.Text.Encoding.Extensions + v4.0.11
System.Threading + v4.0.11
System.Threading.Tasks + v4.0.11
System.Xml.ReaderWriter + v4.0.11
System.Xml.XDocument + v4.0.11
WindowsAzure.ServiceBus + v3.3.2

Package compatibility issues

Description
Costura.Fody + v1.6.2
install.ps1 script will be ignored when the package is installed after the migration.
Desktop.Analyzers + v1.1.0
install.ps1 script will be ignored when the package is installed after the migration.
Fody + v2.2.1
install.ps1 script will be ignored when the package is installed after the migration.
'content' assets will not be available when the package is installed after the migration.
Microsoft.AnalyzerPowerPack + v1.1.0
install.ps1 script will be ignored when the package is installed after the migration.
Newtonsoft.Json + v10.0.3
install.ps1 script will be ignored when the package is installed after the migration.
StyleCop.Analyzers + v1.0.2
install.ps1 script will be ignored when the package is installed after the migration.
System.Runtime.Analyzers + v1.1.0
install.ps1 script will be ignored when the package is installed after the migration.
System.Runtime.InteropServices.Analyzers + v1.1.0
install.ps1 script will be ignored when the package is installed after the migration.
System.Security.Cryptography.Hashing.Algorithms.Analyzers + v1.1.0
install.ps1 script will be ignored when the package is installed after the migration.
WindowsAzure.ServiceBus + v3.3.2
'content' assets will not be available when the package is installed after the migration.
XDT transform file 'content\app.config.install.xdt' will not be applied when the package is installed after the migration.
XDT transform file 'content\web.config.install.xdt' will not be applied when the package is installed after the migration.
\ No newline at end of file diff --git a/src/MigrationBackup/e5e2b080/Cake.Tfs/packages.config b/src/MigrationBackup/e5e2b080/Cake.Tfs/packages.config new file mode 100644 index 0000000..961e8c1 --- /dev/null +++ b/src/MigrationBackup/e5e2b080/Cake.Tfs/packages.config @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tools/packages.config b/tools/packages.config new file mode 100644 index 0000000..227ecd9 --- /dev/null +++ b/tools/packages.config @@ -0,0 +1,4 @@ + + + +