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:
Todd Menier 2016-07-25 09:10:48 -05:00 committed by GitHub
commit 699f893b22
20 changed files with 112 additions and 446 deletions

View File

@ -1,4 +1,4 @@
@set project=..\src\Flurl.Library\
@set project=..\src\Flurl\
call dotnet restore --verbosity Error %project%
@if ERRORLEVEL 1 (

View File

@ -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 (

View File

@ -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>

View File

@ -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>

View File

@ -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

View File

@ -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"
}

View File

@ -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.

View File

@ -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

View File

@ -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>

View File

@ -6,7 +6,7 @@
}
},
"dependencies": {
"Flurl.Http": "1.0.0"
"Flurl.Http": "1.0.1-beta"
},
"frameworks": {
"netcoreapp1.0": {

View File

@ -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 @@
}
}
}
}
}

View File

@ -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);
}

View File

@ -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"

View File

@ -1,7 +1,14 @@
{
"buildOptions": {
"emitEntryPoint": true,
"optimize": true
"emitEntryPoint": true
},
"configurations": {
"Release": {
"buildOptions": {
"optimize": true
}
}
},
"dependencies": {

View File

@ -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;
}
}
}
}
}
}

View File

@ -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"
//}
}
}
}

View File

@ -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>

View File

@ -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",