diff options
Diffstat (limited to '.nuget')
-rw-r--r-- | .nuget/NuGet.Config | 6 | ||||
-rw-r--r-- | .nuget/NuGet.exe | bin | 0 -> 692736 bytes | |||
-rw-r--r-- | .nuget/NuGet.targets | 133 | ||||
-rw-r--r-- | .nuget/packages.config | 4 |
4 files changed, 143 insertions, 0 deletions
diff --git a/.nuget/NuGet.Config b/.nuget/NuGet.Config new file mode 100644 index 00000000..6efc7f7b --- /dev/null +++ b/.nuget/NuGet.Config @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="utf-8"?> +<configuration> + <solution> + <add key="disableSourceControlIntegration" value="true" /> + </solution> +</configuration> diff --git a/.nuget/NuGet.exe b/.nuget/NuGet.exe Binary files differnew file mode 100644 index 00000000..cb3ed036 --- /dev/null +++ b/.nuget/NuGet.exe diff --git a/.nuget/NuGet.targets b/.nuget/NuGet.targets new file mode 100644 index 00000000..52824106 --- /dev/null +++ b/.nuget/NuGet.targets @@ -0,0 +1,133 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">$(MSBuildProjectDirectory)\..\</SolutionDir> + + <!-- Enable the restore command to run before builds --> + <RestorePackages Condition=" '$(RestorePackages)' == '' ">false</RestorePackages> + + <!-- Property that enables building a package from a project --> + <BuildPackage Condition=" '$(BuildPackage)' == '' ">false</BuildPackage> + + <!-- Determines if package restore consent is required to restore packages --> + <RequireRestoreConsent Condition=" '$(RequireRestoreConsent)' != 'false' ">true</RequireRestoreConsent> + + <!-- Download NuGet.exe if it does not already exist --> + <DownloadNuGetExe Condition=" '$(DownloadNuGetExe)' == '' ">false</DownloadNuGetExe> + </PropertyGroup> + + <ItemGroup Condition=" '$(PackageSources)' == '' "> + <!-- Package sources used to restore packages. By default, registered sources under %APPDATA%\NuGet\NuGet.Config will be used --> + <!-- The official NuGet package source (https://nuget.org/api/v2/) will be excluded if package sources are specified and it does not appear in the list --> + <!-- + <PackageSource Include="https://nuget.org/api/v2/" /> + <PackageSource Include="https://my-nuget-source/nuget/" /> + --> + </ItemGroup> + + <PropertyGroup Condition=" '$(OS)' == 'Windows_NT'"> + <!-- Windows specific commands --> + <NuGetToolsPath>$([System.IO.Path]::Combine($(SolutionDir), ".nuget"))</NuGetToolsPath> + <PackagesConfig>$([System.IO.Path]::Combine($(ProjectDir), "packages.config"))</PackagesConfig> + </PropertyGroup> + + <PropertyGroup Condition=" '$(OS)' != 'Windows_NT'"> + <!-- We need to launch nuget.exe with the mono command if we're not on windows --> + <NuGetToolsPath>$(SolutionDir).nuget</NuGetToolsPath> + <PackagesConfig>packages.config</PackagesConfig> + </PropertyGroup> + + <PropertyGroup> + <!-- NuGet command --> + <NuGetExePath Condition=" '$(NuGetExePath)' == '' ">$(NuGetToolsPath)\NuGet.exe</NuGetExePath> + <PackageSources Condition=" $(PackageSources) == '' ">@(PackageSource)</PackageSources> + + <NuGetCommand Condition=" '$(OS)' == 'Windows_NT'">"$(NuGetExePath)"</NuGetCommand> + <NuGetCommand Condition=" '$(OS)' != 'Windows_NT' ">mono --runtime=v4.0.30319 $(NuGetExePath)</NuGetCommand> + + <PackageOutputDir Condition="$(PackageOutputDir) == ''">$(TargetDir.Trim('\\'))</PackageOutputDir> + + <RequireConsentSwitch Condition=" $(RequireRestoreConsent) == 'true' "></RequireConsentSwitch> + <NonInteractiveSwitch Condition=" '$(VisualStudioVersion)' != '' AND '$(OS)' == 'Windows_NT' ">-NonInteractive</NonInteractiveSwitch> + + <!-- Commands --> + <RestoreCommand>$(NuGetCommand) install "$(PackagesConfig)" -source "$(PackageSources)" $(NonInteractiveSwitch) $(RequireConsentSwitch) -solutionDir "$(SolutionDir)\" </RestoreCommand> + <BuildCommand>$(NuGetCommand) pack "$(ProjectPath)" -Properties Configuration=$(Configuration) $(NonInteractiveSwitch) -OutputDirectory "$(PackageOutputDir)" -symbols</BuildCommand> + + <!-- We need to ensure packages are restored prior to assembly resolve --> + <BuildDependsOn Condition="$(RestorePackages) == 'true'"> + RestorePackages; + $(BuildDependsOn); + </BuildDependsOn> + + <!-- Make the build depend on restore packages --> + <BuildDependsOn Condition="$(BuildPackage) == 'true'"> + $(BuildDependsOn); + BuildPackage; + </BuildDependsOn> + </PropertyGroup> + + <Target Name="CheckPrerequisites"> + <!-- Raise an error if we're unable to locate nuget.exe --> + <Error Condition="'$(DownloadNuGetExe)' != 'true' AND !Exists('$(NuGetExePath)')" Text="Unable to locate '$(NuGetExePath)'" /> + <!-- + Take advantage of MsBuild's build dependency tracking to make sure that we only ever download nuget.exe once. + This effectively acts as a lock that makes sure that the download operation will only happen once and all + parallel builds will have to wait for it to complete. + --> + <MsBuild Targets="_DownloadNuGet" Projects="$(MSBuildThisFileFullPath)" Properties="Configuration=NOT_IMPORTANT;DownloadNuGetExe=$(DownloadNuGetExe)" /> + </Target> + + <Target Name="_DownloadNuGet"> + <DownloadNuGet OutputFilename="$(NuGetExePath)" Condition=" '$(DownloadNuGetExe)' == 'true' AND !Exists('$(NuGetExePath)')" /> + </Target> + + <Target Name="RestorePackages" DependsOnTargets="CheckPrerequisites"> + <Exec Command="$(RestoreCommand)" + Condition="'$(OS)' != 'Windows_NT' And Exists('$(PackagesConfig)')" /> + + <Exec Command="$(RestoreCommand)" + LogStandardErrorAsError="true" + Condition="'$(OS)' == 'Windows_NT' And Exists('$(PackagesConfig)')" /> + </Target> + + <Target Name="BuildPackage" DependsOnTargets="CheckPrerequisites"> + <Exec Command="$(BuildCommand)" + Condition=" '$(OS)' != 'Windows_NT' " /> + + <Exec Command="$(BuildCommand)" + LogStandardErrorAsError="true" + Condition=" '$(OS)' == 'Windows_NT' " /> + </Target> + + <UsingTask TaskName="DownloadNuGet" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll"> + <ParameterGroup> + <OutputFilename ParameterType="System.String" Required="true" /> + </ParameterGroup> + <Task> + <Reference Include="System.Core" /> + <Using Namespace="System" /> + <Using Namespace="System.IO" /> + <Using Namespace="System.Net" /> + <Using Namespace="Microsoft.Build.Framework" /> + <Using Namespace="Microsoft.Build.Utilities" /> + <Code Type="Fragment" Language="cs"> + <![CDATA[ + try { + OutputFilename = Path.GetFullPath(OutputFilename); + + Log.LogMessage("Downloading latest version of NuGet.exe..."); + WebClient webClient = new WebClient(); + webClient.DownloadFile("https://nuget.org/nuget.exe", OutputFilename); + + return true; + } + catch (Exception ex) { + Log.LogErrorFromException(ex); + return false; + } + ]]> + </Code> + </Task> + </UsingTask> +</Project> diff --git a/.nuget/packages.config b/.nuget/packages.config new file mode 100644 index 00000000..7025a729 --- /dev/null +++ b/.nuget/packages.config @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8"?> +<packages> + <package id="NUnit.Runners" version="2.6.3" /> +</packages>
\ No newline at end of file |