Merge pull request #117 from tmenier/optimize_for_debug
Revert old project names, return back Full PCL, optimize only for Release
This commit is contained in:
commit
699f893b22
@ -1,4 +1,4 @@
|
||||
@set project=..\src\Flurl.Library\
|
||||
@set project=..\src\Flurl\
|
||||
|
||||
call dotnet restore --verbosity Error %project%
|
||||
@if ERRORLEVEL 1 (
|
||||
|
@ -14,7 +14,7 @@ echo Error! Generation cs file failed.
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
@set project=..\src\Flurl.Http.Library\
|
||||
@set project=..\src\Flurl.Http\
|
||||
|
||||
call dotnet restore --verbosity Error %project%
|
||||
@if ERRORLEVEL 1 (
|
||||
|
@ -2,7 +2,7 @@
|
||||
<package >
|
||||
<metadata>
|
||||
<id>Flurl.Http</id>
|
||||
<version>1.0.0</version>
|
||||
<version>1.0.1-beta</version>
|
||||
<title>Flurl.Http</title>
|
||||
<authors>Todd Menier</authors>
|
||||
<projectUrl>http://tmenier.github.io/Flurl</projectUrl>
|
||||
@ -107,10 +107,10 @@
|
||||
</dependencies>
|
||||
</metadata>
|
||||
<files>
|
||||
<file src="..\..\src\Flurl.Http.Library\bin\Release\portable45-net45+win8+wpa81\Flurl.Http.*" target="lib\monoandroid" />
|
||||
<file src="..\..\src\Flurl.Http.Library\bin\Release\portable45-net45+win8+wpa81\Flurl.Http.*" target="lib\monotouch" />
|
||||
<file src="..\..\src\Flurl.Http.Library\bin\Release\portable45-net45+win8+wpa81\Flurl.Http.*" target="lib\xamarin.ios" />
|
||||
<file src="..\..\src\Flurl.Http.Library\bin\Release\portable45-net45+win8+wpa81\Flurl.Http.*" target="lib\xamarin.mac" />
|
||||
<file src="..\..\src\Flurl.Http.Library\bin\Release\**\Flurl.Http.*" target="lib\" />
|
||||
<file src="..\..\src\Flurl.Http\bin\Release\portable45-net45+win8+wpa81\Flurl.Http.*" target="lib\monoandroid" />
|
||||
<file src="..\..\src\Flurl.Http\bin\Release\portable45-net45+win8+wpa81\Flurl.Http.*" target="lib\monotouch" />
|
||||
<file src="..\..\src\Flurl.Http\bin\Release\portable45-net45+win8+wpa81\Flurl.Http.*" target="lib\xamarin.ios" />
|
||||
<file src="..\..\src\Flurl.Http\bin\Release\portable45-net45+win8+wpa81\Flurl.Http.*" target="lib\xamarin.mac" />
|
||||
<file src="..\..\src\Flurl.Http\bin\Release\**\Flurl.Http.*" target="lib\" />
|
||||
</files>
|
||||
</package>
|
@ -2,7 +2,7 @@
|
||||
<package >
|
||||
<metadata>
|
||||
<id>Flurl</id>
|
||||
<version>2.1.0</version>
|
||||
<version>2.1.1-beta</version>
|
||||
<title>Flurl</title>
|
||||
<authors>Todd Menier</authors>
|
||||
<projectUrl>http://tmenier.github.io/Flurl</projectUrl>
|
||||
@ -52,10 +52,10 @@
|
||||
</dependencies>
|
||||
</metadata>
|
||||
<files>
|
||||
<file src="..\..\src\Flurl.Library\bin\Release\portable40-net40+win8+wpa81\Flurl.*" target="lib\monoandroid" />
|
||||
<file src="..\..\src\Flurl.Library\bin\Release\portable40-net40+win8+wpa81\Flurl.*" target="lib\monotouch" />
|
||||
<file src="..\..\src\Flurl.Library\bin\Release\portable40-net40+win8+wpa81\Flurl.*" target="lib\xamarin.ios" />
|
||||
<file src="..\..\src\Flurl.Library\bin\Release\portable40-net40+win8+wpa81\Flurl.*" target="lib\xamarin.mac" />
|
||||
<file src="..\..\src\Flurl.Library\bin\Release\**\Flurl.*" target="lib\" />
|
||||
<file src="..\..\src\Flurl\bin\Release\portable40-net40+win8+wpa81\Flurl.*" target="lib\monoandroid" />
|
||||
<file src="..\..\src\Flurl\bin\Release\portable40-net40+win8+wpa81\Flurl.*" target="lib\monotouch" />
|
||||
<file src="..\..\src\Flurl\bin\Release\portable40-net40+win8+wpa81\Flurl.*" target="lib\xamarin.ios" />
|
||||
<file src="..\..\src\Flurl\bin\Release\portable40-net40+win8+wpa81\Flurl.*" target="lib\xamarin.mac" />
|
||||
<file src="..\..\src\Flurl\bin\Release\**\Flurl.*" target="lib\" />
|
||||
</files>
|
||||
</package>
|
@ -1,358 +0,0 @@
|
||||
#
|
||||
# Copyright (c) .NET Foundation and contributors. All rights reserved.
|
||||
# Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
#
|
||||
|
||||
<#
|
||||
.SYNOPSIS
|
||||
Installs dotnet cli
|
||||
.DESCRIPTION
|
||||
Installs dotnet cli. If dotnet installation already exists in the given directory
|
||||
it will update it only if the requested version differs from the one already installed.
|
||||
.PARAMETER Channel
|
||||
Default: preview
|
||||
Channel is the way of reasoning about stability and quality of dotnet. This parameter takes one of the values:
|
||||
- future - Possibly unstable, frequently changing, may contain new finished and unfinished features
|
||||
- preview - Pre-release stable with known issues and feature gaps
|
||||
- production - Most stable releases
|
||||
.PARAMETER Version
|
||||
Default: latest
|
||||
Represents a build version on specific channel. Possible values:
|
||||
- 4-part version in a format A.B.C.D - represents specific version of build
|
||||
- latest - most latest build on specific channel
|
||||
- lkg - last known good version on specific channel
|
||||
Note: LKG work is in progress. Once the work is finished, this will become new default
|
||||
.PARAMETER InstallDir
|
||||
Default: %LocalAppData%\Microsoft\dotnet
|
||||
Path to where to install dotnet. Note that binaries will be placed directly in a given directory.
|
||||
.PARAMETER Architecture
|
||||
Default: <auto> - this value represents currently running OS architecture
|
||||
Architecture of dotnet binaries to be installed.
|
||||
Possible values are: <auto>, x64 and x86
|
||||
.PARAMETER SharedRuntime
|
||||
Default: false
|
||||
Installs just the shared runtime bits, not the entire SDK
|
||||
.PARAMETER DebugSymbols
|
||||
If set the installer will include symbols in the installation.
|
||||
.PARAMETER DryRun
|
||||
If set it will not perform installation but instead display what command line to use to consistently install
|
||||
currently requested version of dotnet cli. In example if you specify version 'latest' it will display a link
|
||||
with specific version so that this command can be used deterministicly in a build script.
|
||||
It also displays binaries location if you prefer to install or download it yourself.
|
||||
.PARAMETER NoPath
|
||||
By default this script will set environment variable PATH for the current process to the binaries folder inside installation folder.
|
||||
If set it will display binaries location but not set any environment variable.
|
||||
.PARAMETER Verbose
|
||||
Displays diagnostics information.
|
||||
.PARAMETER AzureFeed
|
||||
Default: https://dotnetcli.blob.core.windows.net/dotnet
|
||||
This parameter should not be usually changed by user. It allows to change URL for the Azure feed used by this installer.
|
||||
#>
|
||||
[cmdletbinding()]
|
||||
param(
|
||||
[string]$Channel="rel-1.0.0",
|
||||
[string]$Version="Latest",
|
||||
[string]$InstallDir="<auto>",
|
||||
[string]$Architecture="<auto>",
|
||||
[switch]$SharedRuntime,
|
||||
[switch]$DebugSymbols, # TODO: Switch does not work yet. Symbols zip is not being uploaded yet.
|
||||
[switch]$DryRun,
|
||||
[switch]$NoPath,
|
||||
[string]$AzureFeed="https://dotnetcli.blob.core.windows.net/dotnet"
|
||||
)
|
||||
|
||||
Set-StrictMode -Version Latest
|
||||
$ErrorActionPreference="Stop"
|
||||
$ProgressPreference="SilentlyContinue"
|
||||
|
||||
$BinFolderRelativePath=""
|
||||
|
||||
# example path with regex: shared/1.0.0-beta-12345/somepath
|
||||
$VersionRegEx="/\d+\.\d+[^/]+/"
|
||||
$OverrideNonVersionedFiles=$true
|
||||
|
||||
function Say($str) {
|
||||
Write-Host "dotnet-install: $str"
|
||||
}
|
||||
|
||||
function Say-Verbose($str) {
|
||||
Write-Verbose "dotnet-install: $str"
|
||||
}
|
||||
|
||||
function Say-Invocation($Invocation) {
|
||||
$command = $Invocation.MyCommand;
|
||||
$args = (($Invocation.BoundParameters.Keys | foreach { "-$_ `"$($Invocation.BoundParameters[$_])`"" }) -join " ")
|
||||
Say-Verbose "$command $args"
|
||||
}
|
||||
|
||||
function Get-Machine-Architecture() {
|
||||
Say-Invocation $MyInvocation
|
||||
|
||||
# possible values: AMD64, IA64, x86
|
||||
return $ENV:PROCESSOR_ARCHITECTURE
|
||||
}
|
||||
|
||||
# TODO: Architecture and CLIArchitecture should be unified
|
||||
function Get-CLIArchitecture-From-Architecture([string]$Architecture) {
|
||||
Say-Invocation $MyInvocation
|
||||
|
||||
switch ($Architecture.ToLower()) {
|
||||
{ $_ -eq "<auto>" } { return Get-CLIArchitecture-From-Architecture $(Get-Machine-Architecture) }
|
||||
{ ($_ -eq "amd64") -or ($_ -eq "x64") } { return "x64" }
|
||||
{ $_ -eq "x86" } { return "x86" }
|
||||
default { throw "Architecture not supported. If you think this is a bug, please report it at https://github.com/dotnet/cli/issues" }
|
||||
}
|
||||
}
|
||||
|
||||
function Get-Version-Info-From-Version-Text([string]$VersionText) {
|
||||
Say-Invocation $MyInvocation
|
||||
|
||||
$Data = @($VersionText.Split([char[]]@(), [StringSplitOptions]::RemoveEmptyEntries));
|
||||
|
||||
$VersionInfo = @{}
|
||||
$VersionInfo.CommitHash = $Data[0].Trim()
|
||||
$VersionInfo.Version = $Data[1].Trim()
|
||||
return $VersionInfo
|
||||
}
|
||||
|
||||
function Get-Latest-Version-Info([string]$AzureFeed, [string]$AzureChannel, [string]$CLIArchitecture) {
|
||||
Say-Invocation $MyInvocation
|
||||
|
||||
$VersionFileUrl = $null
|
||||
if ($SharedRuntime) {
|
||||
$VersionFileUrl = "$AzureFeed/$AzureChannel/dnvm/latest.sharedfx.win.$CLIArchitecture.version"
|
||||
}
|
||||
else {
|
||||
$VersionFileUrl = "$AzureFeed/Sdk/$AzureChannel/latest.version"
|
||||
}
|
||||
|
||||
$Response = Invoke-WebRequest -UseBasicParsing $VersionFileUrl
|
||||
|
||||
switch ($Response.Headers.'Content-Type'){
|
||||
{ ($_ -eq "application/octet-stream") } { $VersionText = [Text.Encoding]::UTF8.GetString($Response.Content) }
|
||||
{ ($_ -eq "text/plain") } { $VersionText = $Response.Content }
|
||||
default { throw "``$Response.Headers.'Content-Type'`` is an unknown .version file content type." }
|
||||
}
|
||||
|
||||
|
||||
$VersionInfo = Get-Version-Info-From-Version-Text $VersionText
|
||||
|
||||
return $VersionInfo
|
||||
}
|
||||
|
||||
# TODO: AzureChannel and Channel should be unified
|
||||
function Get-Azure-Channel-From-Channel([string]$Channel) {
|
||||
Say-Invocation $MyInvocation
|
||||
|
||||
# For compatibility with build scripts accept also directly Azure channels names
|
||||
switch ($Channel.ToLower()) {
|
||||
{ ($_ -eq "future") -or ($_ -eq "dev") } { return "dev" }
|
||||
{ $_ -eq "production" } { throw "Production channel does not exist yet" }
|
||||
default { return $_ }
|
||||
}
|
||||
}
|
||||
|
||||
function Get-Specific-Version-From-Version([string]$AzureFeed, [string]$AzureChannel, [string]$CLIArchitecture, [string]$Version) {
|
||||
Say-Invocation $MyInvocation
|
||||
|
||||
switch ($Version.ToLower()) {
|
||||
{ $_ -eq "latest" } {
|
||||
$LatestVersionInfo = Get-Latest-Version-Info -AzureFeed $AzureFeed -AzureChannel $AzureChannel -CLIArchitecture $CLIArchitecture
|
||||
return $LatestVersionInfo.Version
|
||||
}
|
||||
{ $_ -eq "lkg" } { throw "``-Version LKG`` not supported yet." }
|
||||
default { return $Version }
|
||||
}
|
||||
}
|
||||
|
||||
function Get-Download-Links([string]$AzureFeed, [string]$AzureChannel, [string]$SpecificVersion, [string]$CLIArchitecture) {
|
||||
Say-Invocation $MyInvocation
|
||||
|
||||
$ret = @()
|
||||
|
||||
if ($SharedRuntime) {
|
||||
$PayloadURL = "$AzureFeed/$AzureChannel/Binaries/$SpecificVersion/dotnet-win-$CLIArchitecture.$SpecificVersion.zip"
|
||||
}
|
||||
else {
|
||||
$PayloadURL = "$AzureFeed/Sdk/$SpecificVersion/dotnet-dev-win-$CLIArchitecture.$SpecificVersion.zip"
|
||||
}
|
||||
|
||||
Say-Verbose "Constructed payload URL: $PayloadURL"
|
||||
$ret += $PayloadURL
|
||||
|
||||
return $ret
|
||||
}
|
||||
|
||||
function Get-User-Share-Path() {
|
||||
Say-Invocation $MyInvocation
|
||||
|
||||
$InstallRoot = $env:DOTNET_INSTALL_DIR
|
||||
if (!$InstallRoot) {
|
||||
$InstallRoot = "$env:LocalAppData\Microsoft\dotnet"
|
||||
}
|
||||
return $InstallRoot
|
||||
}
|
||||
|
||||
function Resolve-Installation-Path([string]$InstallDir) {
|
||||
Say-Invocation $MyInvocation
|
||||
|
||||
if ($InstallDir -eq "<auto>") {
|
||||
return Get-User-Share-Path
|
||||
}
|
||||
return $InstallDir
|
||||
}
|
||||
|
||||
function Get-Version-Info-From-Version-File([string]$InstallRoot, [string]$RelativePathToVersionFile) {
|
||||
Say-Invocation $MyInvocation
|
||||
|
||||
$VersionFile = Join-Path -Path $InstallRoot -ChildPath $RelativePathToVersionFile
|
||||
Say-Verbose "Local version file: $VersionFile"
|
||||
|
||||
if (Test-Path $VersionFile) {
|
||||
$VersionText = cat $VersionFile
|
||||
Say-Verbose "Local version file text: $VersionText"
|
||||
return Get-Version-Info-From-Version-Text $VersionText
|
||||
}
|
||||
|
||||
Say-Verbose "Local version file not found."
|
||||
|
||||
return $null
|
||||
}
|
||||
|
||||
function Is-Dotnet-Package-Installed([string]$InstallRoot, [string]$RelativePathToPackage, [string]$SpecificVersion) {
|
||||
Say-Invocation $MyInvocation
|
||||
|
||||
$DotnetPackagePath = Join-Path -Path $InstallRoot -ChildPath $RelativePathToPackage | Join-Path -ChildPath $SpecificVersion
|
||||
Say-Verbose "Is-Dotnet-Package-Installed: Path to a package: $DotnetPackagePath"
|
||||
return Test-Path $DotnetPackagePath -PathType Container
|
||||
}
|
||||
|
||||
function Get-Absolute-Path([string]$RelativeOrAbsolutePath) {
|
||||
# Too much spam
|
||||
# Say-Invocation $MyInvocation
|
||||
|
||||
return $ExecutionContext.SessionState.Path.GetUnresolvedProviderPathFromPSPath($RelativeOrAbsolutePath)
|
||||
}
|
||||
|
||||
function Get-Path-Prefix-With-Version($path) {
|
||||
$match = [regex]::match($path, $VersionRegEx)
|
||||
if ($match.Success) {
|
||||
return $entry.FullName.Substring(0, $match.Index + $match.Length)
|
||||
}
|
||||
|
||||
return $null
|
||||
}
|
||||
|
||||
function Get-List-Of-Directories-And-Versions-To-Unpack-From-Dotnet-Package([System.IO.Compression.ZipArchive]$Zip, [string]$OutPath) {
|
||||
Say-Invocation $MyInvocation
|
||||
|
||||
$ret = @()
|
||||
foreach ($entry in $Zip.Entries) {
|
||||
$dir = Get-Path-Prefix-With-Version $entry.FullName
|
||||
if ($dir -ne $null) {
|
||||
$path = Get-Absolute-Path $(Join-Path -Path $OutPath -ChildPath $dir)
|
||||
if (-Not (Test-Path $path -PathType Container)) {
|
||||
$ret += $dir
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$ret = $ret | Sort-Object | Get-Unique
|
||||
|
||||
$values = ($ret | foreach { "$_" }) -join ";"
|
||||
Say-Verbose "Directories to unpack: $values"
|
||||
|
||||
return $ret
|
||||
}
|
||||
|
||||
# Example zip content and extraction algorithm:
|
||||
# Rule: files if extracted are always being extracted to the same relative path locally
|
||||
# .\
|
||||
# a.exe # file does not exist locally, extract
|
||||
# b.dll # file exists locally, override only if $OverrideFiles set
|
||||
# aaa\ # same rules as for files
|
||||
# ...
|
||||
# abc\1.0.0\ # directory contains version and exists locally
|
||||
# ... # do not extract content under versioned part
|
||||
# abc\asd\ # same rules as for files
|
||||
# ...
|
||||
# def\ghi\1.0.1\ # directory contains version and does not exist locally
|
||||
# ... # extract content
|
||||
function Extract-Dotnet-Package([string]$ZipPath, [string]$OutPath) {
|
||||
Say-Invocation $MyInvocation
|
||||
|
||||
Add-Type -Assembly System.IO.Compression.FileSystem | Out-Null
|
||||
Set-Variable -Name Zip
|
||||
try {
|
||||
$Zip = [System.IO.Compression.ZipFile]::OpenRead($ZipPath)
|
||||
|
||||
$DirectoriesToUnpack = Get-List-Of-Directories-And-Versions-To-Unpack-From-Dotnet-Package -Zip $Zip -OutPath $OutPath
|
||||
|
||||
foreach ($entry in $Zip.Entries) {
|
||||
$PathWithVersion = Get-Path-Prefix-With-Version $entry.FullName
|
||||
if (($PathWithVersion -eq $null) -Or ($DirectoriesToUnpack -contains $PathWithVersion)) {
|
||||
$DestinationPath = Get-Absolute-Path $(Join-Path -Path $OutPath -ChildPath $entry.FullName)
|
||||
$DestinationDir = Split-Path -Parent $DestinationPath
|
||||
$OverrideFiles=$OverrideNonVersionedFiles -Or (-Not (Test-Path $DestinationPath))
|
||||
if ((-Not $DestinationPath.EndsWith("\")) -And $OverrideFiles) {
|
||||
New-Item -ItemType Directory -Force -Path $DestinationDir | Out-Null
|
||||
[System.IO.Compression.ZipFileExtensions]::ExtractToFile($entry, $DestinationPath, $OverrideNonVersionedFiles)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
finally {
|
||||
if ($Zip -ne $null) {
|
||||
$Zip.Dispose()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$AzureChannel = Get-Azure-Channel-From-Channel -Channel $Channel
|
||||
$CLIArchitecture = Get-CLIArchitecture-From-Architecture $Architecture
|
||||
$SpecificVersion = Get-Specific-Version-From-Version -AzureFeed $AzureFeed -AzureChannel $AzureChannel -CLIArchitecture $CLIArchitecture -Version $Version
|
||||
$DownloadLinks = Get-Download-Links -AzureFeed $AzureFeed -AzureChannel $AzureChannel -SpecificVersion $SpecificVersion -CLIArchitecture $CLIArchitecture
|
||||
|
||||
if ($DryRun) {
|
||||
Say "Payload URLs:"
|
||||
foreach ($DownloadLink in $DownloadLinks) {
|
||||
Say "- $DownloadLink"
|
||||
}
|
||||
Say "Repeatable invocation: .\$($MyInvocation.MyCommand) -Version $SpecificVersion -Channel $Channel -Architecture $CLIArchitecture -InstallDir $InstallDir"
|
||||
exit 0
|
||||
}
|
||||
|
||||
$InstallRoot = Resolve-Installation-Path $InstallDir
|
||||
Say-Verbose "InstallRoot: $InstallRoot"
|
||||
|
||||
$IsSdkInstalled = Is-Dotnet-Package-Installed -InstallRoot $InstallRoot -RelativePathToPackage "sdk" -SpecificVersion $SpecificVersion
|
||||
Say-Verbose ".NET SDK installed? $IsSdkInstalled"
|
||||
if ($IsSdkInstalled) {
|
||||
Say ".NET SDK version $SpecificVersion is already installed."
|
||||
exit 0
|
||||
}
|
||||
|
||||
New-Item -ItemType Directory -Force -Path $InstallRoot | Out-Null
|
||||
|
||||
foreach ($DownloadLink in $DownloadLinks) {
|
||||
$ZipPath = [System.IO.Path]::GetTempFileName()
|
||||
Say "Downloading $DownloadLink"
|
||||
$resp = Invoke-WebRequest -UseBasicParsing $DownloadLink -OutFile $ZipPath
|
||||
|
||||
Say "Extracting zip from $DownloadLink"
|
||||
Extract-Dotnet-Package -ZipPath $ZipPath -OutPath $InstallRoot
|
||||
|
||||
Remove-Item $ZipPath
|
||||
}
|
||||
|
||||
$BinPath = Get-Absolute-Path $(Join-Path -Path $InstallRoot -ChildPath $BinFolderRelativePath)
|
||||
if (-Not $NoPath) {
|
||||
Say "Adding to current process PATH: `"$BinPath`". Note: This change will not be visible if PowerShell was run as a child process."
|
||||
$env:path = "$BinPath;" + $env:path
|
||||
}
|
||||
else {
|
||||
Say "Binaries of dotnet can be found in $BinPath"
|
||||
}
|
||||
|
||||
Say "Installation finished"
|
||||
exit 0
|
@ -1,9 +0,0 @@
|
||||
|
||||
if (Get-Command dotnet -errorAction SilentlyContinue) {
|
||||
Write-Host "Using dotnet '$((Get-Command dotnet).Path)'"
|
||||
dotnet --version
|
||||
}
|
||||
else {
|
||||
Write-Host "dotnet.exe not found"
|
||||
}
|
||||
|
@ -1,7 +1,5 @@
|
||||
@set project=..\test\Flurl.Test.NETCore\
|
||||
|
||||
@call dotnet --info
|
||||
|
||||
call dotnet restore --verbosity Error %project%
|
||||
@if ERRORLEVEL 1 (
|
||||
echo Error! Restoring dependicies failed.
|
||||
|
24
Flurl.sln
24
Flurl.sln
@ -1,7 +1,7 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio 14
|
||||
VisualStudioVersion = 14.0.25123.0
|
||||
VisualStudioVersion = 14.0.25420.1
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{CF0659E1-9C0D-4D35-8FBA-CC5E94619853}"
|
||||
EndProject
|
||||
@ -11,9 +11,9 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Flurl.Test.NET45", "test\Fl
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Flurl.Test.PCL", "test\Flurl.Test.PCL\Flurl.Test.PCL.csproj", "{49CB777F-D13D-401A-9206-48A6B2ECB276}"
|
||||
EndProject
|
||||
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Flurl.Http.Library", "src\Flurl.Http.Library\Flurl.Http.Library.xproj", "{52C8C00D-9BD2-4642-B103-F0A8C564FE05}"
|
||||
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Flurl.Http", "src\Flurl.Http\Flurl.Http.xproj", "{52C8C00D-9BD2-4642-B103-F0A8C564FE05}"
|
||||
EndProject
|
||||
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Flurl.Library", "src\Flurl.Library\Flurl.Library.xproj", "{52CE5E08-8F02-4F75-8B64-8E00E3262A0F}"
|
||||
Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Flurl", "src\Flurl\Flurl.xproj", "{52CE5E08-8F02-4F75-8B64-8E00E3262A0F}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "packageTesters", "packageTesters", "{FA115433-6141-4A60-B3F2-8A5972632B50}"
|
||||
EndProject
|
||||
@ -45,18 +45,18 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "nuspec", "nuspec", "{E41F60
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SharedMSBuildProjectFiles) = preSolution
|
||||
Test\Flurl.Test.Shared\Flurl.Test.Shared.projitems*{4c7c0861-84f6-436e-8fa6-4c318b336a7b}*SharedItemsImports = 13
|
||||
PackageTesters\PackageTester.Shared\PackageTester.Shared.projitems*{19c1befd-9df7-4efa-9d7d-37b0dc6eef54}*SharedItemsImports = 13
|
||||
src\Flurl.Http.Shared\Flurl.Http.Shared.projitems*{49cb777f-d13d-401a-9206-48a6b2ecb276}*SharedItemsImports = 4
|
||||
Test\Flurl.Test.Shared\Flurl.Test.Shared.projitems*{49cb777f-d13d-401a-9206-48a6b2ecb276}*SharedItemsImports = 4
|
||||
src\Flurl.Shared\Flurl.Shared.projitems*{49cb777f-d13d-401a-9206-48a6b2ecb276}*SharedItemsImports = 4
|
||||
PackageTesters\PackageTester.Shared\PackageTester.Shared.projitems*{d00a7c13-ab11-46f0-a694-8986dec6ac5d}*SharedItemsImports = 4
|
||||
PackageTesters\PackageTester.Shared\PackageTester.Shared.projitems*{0a32978c-bc48-4dfb-b1f7-b88541b0d686}*SharedItemsImports = 4
|
||||
src\Flurl.Http.Shared\Flurl.Http.Shared.projitems*{734e6962-97e2-4318-9a2d-c87e76921afb}*SharedItemsImports = 13
|
||||
src\Flurl.Shared\Flurl.Shared.projitems*{ed944c76-9613-474e-9861-54e41a3e77cd}*SharedItemsImports = 13
|
||||
PackageTesters\PackageTester.Shared\PackageTester.Shared.projitems*{19c1befd-9df7-4efa-9d7d-37b0dc6eef54}*SharedItemsImports = 13
|
||||
src\Flurl.Http.Shared\Flurl.Http.Shared.projitems*{3f6be828-fa29-429e-99e1-f1fcdfdc1205}*SharedItemsImports = 4
|
||||
Test\Flurl.Test.Shared\Flurl.Test.Shared.projitems*{3f6be828-fa29-429e-99e1-f1fcdfdc1205}*SharedItemsImports = 4
|
||||
src\Flurl.Shared\Flurl.Shared.projitems*{3f6be828-fa29-429e-99e1-f1fcdfdc1205}*SharedItemsImports = 4
|
||||
Test\Flurl.Test.Shared\Flurl.Test.Shared.projitems*{3f6be828-fa29-429e-99e1-f1fcdfdc1205}*SharedItemsImports = 4
|
||||
src\Flurl.Http.Shared\Flurl.Http.Shared.projitems*{49cb777f-d13d-401a-9206-48a6b2ecb276}*SharedItemsImports = 4
|
||||
src\Flurl.Shared\Flurl.Shared.projitems*{49cb777f-d13d-401a-9206-48a6b2ecb276}*SharedItemsImports = 4
|
||||
Test\Flurl.Test.Shared\Flurl.Test.Shared.projitems*{49cb777f-d13d-401a-9206-48a6b2ecb276}*SharedItemsImports = 4
|
||||
Test\Flurl.Test.Shared\Flurl.Test.Shared.projitems*{4c7c0861-84f6-436e-8fa6-4c318b336a7b}*SharedItemsImports = 13
|
||||
src\Flurl.Http.Shared\Flurl.Http.Shared.projitems*{734e6962-97e2-4318-9a2d-c87e76921afb}*SharedItemsImports = 13
|
||||
PackageTesters\PackageTester.Shared\PackageTester.Shared.projitems*{d00a7c13-ab11-46f0-a694-8986dec6ac5d}*SharedItemsImports = 4
|
||||
src\Flurl.Shared\Flurl.Shared.projitems*{ed944c76-9613-474e-9861-54e41a3e77cd}*SharedItemsImports = 13
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Ad-Hoc|Any CPU = Ad-Hoc|Any CPU
|
||||
|
@ -6,6 +6,12 @@
|
||||
<add key="api.nuget.org" value="https://api.nuget.org/v3/index.json" />
|
||||
<add key="flurl feed" value="https://www.myget.org/F/flurl/api/v3/index.json" />
|
||||
</packageSources>
|
||||
<packageRestore>
|
||||
<!--Allow NuGet to download missing packages -->
|
||||
<add key="enabled" value="True" />
|
||||
<!-- Automatically check for missing packages during build in Visual Studio -->
|
||||
<add key="automatic" value="True" />
|
||||
</packageRestore>
|
||||
<disabledPackageSources>
|
||||
<add key="Microsoft and .NET" value="true" />
|
||||
</disabledPackageSources>
|
||||
|
@ -6,7 +6,7 @@
|
||||
}
|
||||
},
|
||||
"dependencies": {
|
||||
"Flurl.Http": "1.0.0"
|
||||
"Flurl.Http": "1.0.1-beta"
|
||||
},
|
||||
"frameworks": {
|
||||
"netcoreapp1.0": {
|
||||
|
@ -1,19 +1,25 @@
|
||||
{
|
||||
"name": "Flurl.Test.NETCore",
|
||||
|
||||
"buildOptions": {
|
||||
"compile": {
|
||||
"include": [ "../Flurl.Test.Shared/**/*.cs" ]
|
||||
}
|
||||
},
|
||||
|
||||
"configurations": {
|
||||
"Release": {
|
||||
"buildOptions": {
|
||||
"optimize": true
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
"commands": {
|
||||
"test": "Flurl.Test.NETCore"
|
||||
},
|
||||
|
||||
"dependencies": {
|
||||
"dotnet-test-nunit": "3.4.0-beta-1",
|
||||
"Flurl.Http.Library": { "target": "project" },
|
||||
"Flurl.Http": { "target": "project" },
|
||||
"NUnit": "3.4.1"
|
||||
},
|
||||
|
||||
@ -34,4 +40,4 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -16,14 +16,14 @@ namespace Flurl.Test
|
||||
{
|
||||
[Test]
|
||||
public void flurl_versions_are_consistent() {
|
||||
var projVer = GetProjectVersion(@"src\Flurl.Library\project.json");
|
||||
var projVer = GetProjectVersion(@"src\Flurl\project.json");
|
||||
var nuspecVer = GetNuspecVersion(@"build\nuspec\Flurl.nuspec");
|
||||
Assert.AreEqual(projVer, nuspecVer);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void flurlhttp_versions_are_consistent() {
|
||||
var projVer = GetProjectVersion(@"src\Flurl.Http.Library\project.json");
|
||||
var projVer = GetProjectVersion(@"src\Flurl.Http\project.json");
|
||||
var nuspecVer = GetNuspecVersion(@"build\nuspec\Flurl.Http.nuspec");
|
||||
Assert.AreEqual(projVer, nuspecVer);
|
||||
}
|
||||
|
@ -1,7 +1,6 @@
|
||||
version: 1.0.0-{branch}-{build}
|
||||
|
||||
branches:
|
||||
# whitelist
|
||||
only:
|
||||
- master
|
||||
- dev
|
||||
@ -9,14 +8,8 @@ branches:
|
||||
pull_requests:
|
||||
do_not_increment_build_number: true
|
||||
|
||||
os: Visual Studio 2015
|
||||
|
||||
install:
|
||||
- ps: .\build\scripts\install.ps1
|
||||
|
||||
build_script:
|
||||
- ps: .\build\scripts\show-dotnet-info.ps1
|
||||
- cmd: call cmd /C "cd .\build & pack.flurl.cmd & pack.flurl.http.cmd"
|
||||
- cmd: call cmd /C "call dotnet --info & cd .\build & pack.flurl.cmd & pack.flurl.http.cmd"
|
||||
|
||||
test_script:
|
||||
- cmd: call cmd /C "cd .\build & test.cmd"
|
||||
|
@ -1,7 +1,14 @@
|
||||
{
|
||||
"buildOptions": {
|
||||
"emitEntryPoint": true,
|
||||
"optimize": true
|
||||
"emitEntryPoint": true
|
||||
},
|
||||
|
||||
"configurations": {
|
||||
"Release": {
|
||||
"buildOptions": {
|
||||
"optimize": true
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
"dependencies": {
|
||||
|
@ -1,6 +1,4 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.IO;
|
||||
using System.Net;
|
||||
using System.Net.Http;
|
||||
using System.Threading.Tasks;
|
||||
@ -11,7 +9,7 @@ namespace Flurl.Http.Content
|
||||
/// Represents HTTP content based on a local file. Typically used with PostMultipartAsync for uploading files.
|
||||
/// </summary>
|
||||
public class FileContent : HttpContent
|
||||
{
|
||||
{
|
||||
/// <summary>
|
||||
/// The local file path.
|
||||
/// </summary>
|
||||
@ -29,15 +27,26 @@ namespace Flurl.Http.Content
|
||||
_bufferSize = bufferSize;
|
||||
}
|
||||
|
||||
protected override async Task SerializeToStreamAsync(Stream stream, TransportContext context) {
|
||||
using (var source = await FileUtil.OpenReadAsync(Path, _bufferSize).ConfigureAwait(false)) {
|
||||
await source.CopyToAsync(stream, _bufferSize).ConfigureAwait(false);
|
||||
}
|
||||
/// <summary>
|
||||
/// Serializes to stream asynchronous.
|
||||
/// </summary>
|
||||
/// <param name="stream">The stream.</param>
|
||||
/// <param name="context">The context.</param>
|
||||
/// <returns></returns>
|
||||
protected override async Task SerializeToStreamAsync(Stream stream, TransportContext context) {
|
||||
using (var source = await FileUtil.OpenReadAsync(Path, _bufferSize).ConfigureAwait(false)) {
|
||||
await source.CopyToAsync(stream, _bufferSize).ConfigureAwait(false);
|
||||
}
|
||||
}
|
||||
|
||||
protected override bool TryComputeLength(out long length) {
|
||||
length = -1;
|
||||
/// <summary>
|
||||
/// Tries the length of the compute.
|
||||
/// </summary>
|
||||
/// <param name="length">The length.</param>
|
||||
/// <returns></returns>
|
||||
protected override bool TryComputeLength(out long length) {
|
||||
length = -1;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -1,9 +1,9 @@
|
||||
{
|
||||
"title": "Flurl.Http",
|
||||
"version": "1.0.0",
|
||||
"version": "1.0.1-beta",
|
||||
|
||||
"dependencies": {
|
||||
"Flurl": "2.1.0",
|
||||
"Flurl": "2.1.1-beta",
|
||||
"Newtonsoft.Json": "9.0.1"
|
||||
},
|
||||
|
||||
@ -11,9 +11,16 @@
|
||||
"compile": {
|
||||
"include": [ "../Flurl.Http.Shared/**/*.cs" ]
|
||||
},
|
||||
"optimize": true,
|
||||
"outputName": "Flurl.Http",
|
||||
"xmlDoc": true
|
||||
"xmlDoc": true,
|
||||
"warningsAsErrors": true
|
||||
},
|
||||
|
||||
"configurations": {
|
||||
"Release": {
|
||||
"buildOptions": {
|
||||
"optimize": true
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
"frameworks": {
|
||||
@ -32,7 +39,7 @@
|
||||
"System.Text.Encoding.CodePages": "4.0.1"
|
||||
}
|
||||
},
|
||||
"portable45-net45+win8+wpa81": {
|
||||
".NETPortable4.0-net45+sl50+win+wpa81+wp80": {
|
||||
"buildOptions": {
|
||||
"define": [ "PORTABLE" ]
|
||||
},
|
||||
@ -41,16 +48,16 @@
|
||||
"Microsoft.Bcl.Build": "1.0.21",
|
||||
"Microsoft.Net.Http": "2.2.29",
|
||||
"PCLStorage": "1.0.2"
|
||||
},
|
||||
"frameworkAssemblies": {
|
||||
"System.Collections": "4.0.0.0",
|
||||
"System.Dynamic.Runtime": "4.0.0.0",
|
||||
"System.Linq": "4.0.0.0",
|
||||
"System.Runtime.Extensions": "4.0.0.0",
|
||||
"System.Text.Encoding": "4.0.0.0",
|
||||
"System.Text.RegularExpressions": "4.0.0.0",
|
||||
"System.Threading": "4.0.0.0"
|
||||
}
|
||||
}//,
|
||||
//"frameworkAssemblies": {
|
||||
// "System.Collections": "4.0.0.0",
|
||||
// "System.Dynamic.Runtime": "4.0.0.0",
|
||||
// "System.Linq": "4.0.0.0",
|
||||
// "System.Runtime.Extensions": "4.0.0.0",
|
||||
// "System.Text.Encoding": "4.0.0.0",
|
||||
// "System.Text.RegularExpressions": "4.0.0.0",
|
||||
// "System.Threading": "4.0.0.0"
|
||||
//}
|
||||
}
|
||||
}
|
||||
}
|
@ -71,7 +71,7 @@ namespace Flurl
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Basically a Path.Combine for URLs. Ensures exactly one '/' character is used to seperate each segment.
|
||||
/// Basically a Path.Combine for URLs. Ensures exactly one '/' character is used to separate each segment.
|
||||
/// URL-encodes illegal characters but not reserved characters.
|
||||
/// </summary>
|
||||
/// <param name="url">The URL to use as a starting point (required).</param>
|
||||
|
@ -1,18 +1,25 @@
|
||||
{
|
||||
"title": "Flurl",
|
||||
"version": "2.1.0",
|
||||
"version": "2.1.1-beta",
|
||||
|
||||
"buildOptions": {
|
||||
"compile": {
|
||||
"include": "../Flurl.Shared/**/*.cs"
|
||||
},
|
||||
"optimize": true,
|
||||
"outputName": "Flurl",
|
||||
"warningsAsErrors": true,
|
||||
"xmlDoc": true
|
||||
},
|
||||
|
||||
"configurations": {
|
||||
"Release": {
|
||||
"buildOptions": {
|
||||
"optimize": true
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
"frameworks": {
|
||||
"portable40-net40+win8+wpa81": {
|
||||
".NETPortable4.0-net40+sl50+win+wpa81+wp80": {
|
||||
"frameworkAssemblies": {
|
||||
"mscorlib": "2.0.5.0",
|
||||
"System": "2.0.5.0",
|
Loading…
x
Reference in New Issue
Block a user