Skip to content

Commit

Permalink
Merge pull request #22 from vincent81-jiang/master
Browse files Browse the repository at this point in the history
Azure Storage Client Library for c++ v0.6.0
  • Loading branch information
slepox committed Mar 27, 2015
2 parents 0d0e4d8 + 5f12cbf commit ab5c3b9
Show file tree
Hide file tree
Showing 90 changed files with 2,685 additions and 1,660 deletions.
13 changes: 12 additions & 1 deletion BreakingChanges.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,17 @@
Azure Storage Client Library for C++
History of Breaking Changes

Breaking Changes in v0.6:
- Removed following functions:
- cloud_queue_client::list_queues
- cloud_queue_client::list_queues_async
- cloud_table_client::list_tables
- cloud_table_client::list_tables_async
- cloud_table::execute_query
- cloud_table::execute_query_async
- Changed table_entity::set_timestamp to a private method as timestamp is read-only
- Upgraded Casablanca dependency to 2.4.0

Breaking Changes in v0.5:
- Added parameter sequence_number to the following functions:
- cloud_page_blob::create_async
Expand All @@ -17,7 +28,7 @@ Breaking Changes in v0.5:
Breaking Changes in v0.4:
- Upgraded Casablanca dependency to 2.3.0
- Changed the exception type in some cases if you upload a blob from a seekable stream but the stream is too short for the desired blob length.
- Used to throw azure::storage::storage_exception in some cases, now throws std::invalid_argument always.
- Used to throw azure::storage::storage_exception in some cases, now throws std::invalid_argument always.

Breaking changes in v0.3:
- Changed namespace to azure::storage.
Expand Down
14 changes: 14 additions & 0 deletions Changelog.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,20 @@
Azure Storage Client Library for C++
History of Changes

Changes in v0.6:
- Changed constructors not intended for public use to private for cloud_blob, cloud_block_blob, cloud_page_blob and cloud_append_blob classes
- Added move constructors and move assignment operators to many classes for Visual Studio 2012 and 2013
- User headers in operation context overwrite existing header values
- Changed table_entity::set_timestamp to a private method as timestamp is read-only
- Removed following functions:
- cloud_queue_client::list_queues
- cloud_queue_client::list_queues_async
- cloud_table_client::list_tables
- cloud_table_client::list_tables_async
- cloud_table::execute_query
- cloud_table::execute_query_async
- Upgraded Casablanca dependency to 2.4.0

Changes in v0.5:
- Default REST API version is 2014-02-14
- Added parameter sequence_number to the following functions:
Expand Down
4 changes: 2 additions & 2 deletions Microsoft.WindowsAzure.Storage.autopkg
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
nuget {
nuspec {
id = wastorage;
version: 0.5.0-preview;
version: 0.6.0-preview;
title: Microsoft Azure Storage Client Library for C++;
authors: {Microsoft Corporation};
owners: {Microsoft Corporation};
Expand All @@ -17,7 +17,7 @@ nuget {

dependencies {
packages: {
cpprestsdk/2.3.0
cpprestsdk/2.4.0.1
};
}

Expand Down
16 changes: 16 additions & 0 deletions Microsoft.WindowsAzure.Storage.sln
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,10 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2012
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Microsoft.WindowsAzure.Storage", "Microsoft.WindowsAzure.Storage\Microsoft.WindowsAzure.Storage.vcxproj", "{DCFF75B0-B142-4EC8-992F-3E48F2E3EECE}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UnitTest++.vsnet2005", "Microsoft.WindowsAzure.Storage\tests\UnitTest++\UnitTest++.vsnet2005.vcxproj", "{64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Microsoft.WindowsAzure.Storage.UnitTests", "Microsoft.WindowsAzure.Storage\tests\Microsoft.WindowsAzure.Storage.UnitTests.vcxproj", "{D02FBA48-23CD-4CDF-9BD0-A03295744FA2}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Expand All @@ -19,6 +23,18 @@ Global
{DCFF75B0-B142-4EC8-992F-3E48F2E3EECE}.Release|Win32.Build.0 = Release|Win32
{DCFF75B0-B142-4EC8-992F-3E48F2E3EECE}.Release|x64.ActiveCfg = Release|x64
{DCFF75B0-B142-4EC8-992F-3E48F2E3EECE}.Release|x64.Build.0 = Release|x64
{64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.Debug|Win32.ActiveCfg = Debug|Win32
{64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.Debug|Win32.Build.0 = Debug|Win32
{64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.Debug|x64.ActiveCfg = Debug|Win32
{64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.Release|Win32.ActiveCfg = Release|Win32
{64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.Release|Win32.Build.0 = Release|Win32
{64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.Release|x64.ActiveCfg = Release|Win32
{D02FBA48-23CD-4CDF-9BD0-A03295744FA2}.Debug|Win32.ActiveCfg = Debug|Win32
{D02FBA48-23CD-4CDF-9BD0-A03295744FA2}.Debug|Win32.Build.0 = Debug|Win32
{D02FBA48-23CD-4CDF-9BD0-A03295744FA2}.Debug|x64.ActiveCfg = Debug|Win32
{D02FBA48-23CD-4CDF-9BD0-A03295744FA2}.Release|Win32.ActiveCfg = Release|Win32
{D02FBA48-23CD-4CDF-9BD0-A03295744FA2}.Release|Win32.Build.0 = Release|Win32
{D02FBA48-23CD-4CDF-9BD0-A03295744FA2}.Release|x64.ActiveCfg = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Expand Down
16 changes: 16 additions & 0 deletions Microsoft.WindowsAzure.Storage.v120.sln
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,10 @@ VisualStudioVersion = 12.0.30110.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Microsoft.WindowsAzure.Storage.v120", "Microsoft.WindowsAzure.Storage\Microsoft.WindowsAzure.Storage.v120.vcxproj", "{DCFF75B0-B142-4EC8-992F-3E48F2E3EECE}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UnitTest++.vsnet2005.v120", "Microsoft.WindowsAzure.Storage\tests\UnitTest++\UnitTest++.vsnet2005.v120.vcxproj", "{64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Microsoft.WindowsAzure.Storage.UnitTests.v120", "Microsoft.WindowsAzure.Storage\tests\Microsoft.WindowsAzure.Storage.UnitTests.v120.vcxproj", "{D02FBA48-23CD-4CDF-9BD0-A03295744FA2}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuget", ".nuget", "{995340A4-EECE-4AF0-B29F-AD925585C7FC}"
ProjectSection(SolutionItems) = preProject
.nuget\NuGet.Config = .nuget\NuGet.Config
Expand All @@ -28,6 +32,18 @@ Global
{DCFF75B0-B142-4EC8-992F-3E48F2E3EECE}.Release|Win32.Build.0 = Release|Win32
{DCFF75B0-B142-4EC8-992F-3E48F2E3EECE}.Release|x64.ActiveCfg = Release|x64
{DCFF75B0-B142-4EC8-992F-3E48F2E3EECE}.Release|x64.Build.0 = Release|x64
{64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.Debug|Win32.ActiveCfg = Debug|Win32
{64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.Debug|Win32.Build.0 = Debug|Win32
{64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.Debug|x64.ActiveCfg = Debug|Win32
{64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.Release|Win32.ActiveCfg = Release|Win32
{64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.Release|Win32.Build.0 = Release|Win32
{64A4FEFE-0461-4E95-8CC1-91EF5F57DBC6}.Release|x64.ActiveCfg = Release|Win32
{D02FBA48-23CD-4CDF-9BD0-A03295744FA2}.Debug|Win32.ActiveCfg = Debug|Win32
{D02FBA48-23CD-4CDF-9BD0-A03295744FA2}.Debug|Win32.Build.0 = Debug|Win32
{D02FBA48-23CD-4CDF-9BD0-A03295744FA2}.Debug|x64.ActiveCfg = Debug|Win32
{D02FBA48-23CD-4CDF-9BD0-A03295744FA2}.Release|Win32.ActiveCfg = Release|Win32
{D02FBA48-23CD-4CDF-9BD0-A03295744FA2}.Release|Win32.Build.0 = Release|Win32
{D02FBA48-23CD-4CDF-9BD0-A03295744FA2}.Release|x64.ActiveCfg = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Expand Down
84 changes: 30 additions & 54 deletions Microsoft.WindowsAzure.Storage/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,77 +8,42 @@ set(WARNINGS)

set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/")

option(BUILD_TESTS "Build test codes" OFF)
option(BUILD_SAMPLES "Build sample codes" OFF)

# Platform (not compiler) specific settings
if(IOS)
set(IOS_SOURCE_DIR "${CMAKE_SOURCE_DIR}/../Build_iOS")
set(Boost_FRAMEWORK "-F ${IOS_SOURCE_DIR} -framework boost")
set(Boost_INCLUDE_DIR "${IOS_SOURCE_DIR}/boost.framework/Headers")

set(OPENSSL_FOUND 1)
set(OPENSSL_INCLUDE_DIR "${IOS_SOURCE_DIR}/openssl/include")
set(OPENSSL_LIBRARIES
"${IOS_SOURCE_DIR}/openssl/lib/libcrypto.a"
"${IOS_SOURCE_DIR}/openssl/lib/libssl.a"
)

set(CASABLANCA_INCLUDE_DIRS "${IOS_SOURCE_DIR}/casablanca/include")
set(CASABLANCA_LIBRARIES "${IOS_SOURCE_DIR}/casablanca/lib/libcasablanca.a")

# The cxx_flags must be set here, because the ios-cmake toolchain file unfortunately sets "-headerpad_max_install_names" which is not a valid clang flag.
set(CMAKE_CXX_FLAGS "-fvisibility=hidden -fvisibility-inlines-hidden")

set(BUILD_SHARED_LIBS OFF)
elseif(UNIX) # This includes OSX
find_package(Boost REQUIRED COMPONENTS log log_setup random system thread locale regex filesystem)
if(UNIX)
find_package(Boost REQUIRED COMPONENTS log log_setup random system thread locale regex filesystem chrono date_time)
find_package(Threads REQUIRED)
find_package(OpenSSL REQUIRED)
find_package(Glibmm REQUIRED)
find_package(LibXML++ REQUIRED)
find_package(UUID REQUIRED)
find_package(Casablanca REQUIRED)

set(UNITTEST_LIBRARY "${CMAKE_SOURCE_DIR}/tests/UnitTest++/libUnitTest++.a")

option(BUILD_SHARED_LIBS "Build shared Libraries." ON)
elseif(WIN32)
option(BUILD_SHARED_LIBS "Build shared Libraries." ON)

add_definitions(-DUNICODE)

if(NOT BUILD_SHARED_LIBS)
# This causes cmake to not link the test libraries separately, but instead hold onto their object files.
set(TEST_LIBRARY_TARGET_TYPE OBJECT)
if(BUILD_TESTS)
find_package(UnitTest++ REQUIRED)
endif()

set(LIB lib)
option(BUILD_SHARED_LIBS "Build shared Libraries." ON)
else()
message("-- Unsupported Build Platform.")
endif()

# Compiler (not platform) specific settings
if(("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang") OR IOS)
message("-- Setting clang options")

set(WARNINGS "-Wall -Wextra -Wcast-qual -Wconversion -Wformat=2 -Winit-self -Winvalid-pch -Wmissing-format-attribute -Wmissing-include-dirs -Wpacked -Wredundant-decls")
set(OSX_SUPPRESSIONS "-Wno-overloaded-virtual -Wno-sign-conversion -Wno-deprecated -Wno-unknown-pragmas -Wno-reorder -Wno-char-subscripts -Wno-switch -Wno-unused-parameter -Wno-unused-variable -Wno-deprecated -Wno-unused-value -Wno-unknown-warning-option -Wno-return-type-c-linkage -Wno-unused-function -Wno-sign-compare -Wno-shorten-64-to-32 -Wno-reorder")
set(WARNINGS "${WARNINGS} ${OSX_SUPPRESSIONS}")

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++ -Wno-return-type-c-linkage -Wno-unneeded-internal-declaration")
set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY "libc++")
set(CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LANGUAGE_STANDARD "c++11")

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -fno-strict-aliasing")
set(STRICT_CXX_FLAGS ${WARNINGS} "-Werror -pedantic")
elseif("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU")
if("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU")
message("-- Setting gcc options")

set(WARNINGS "-Wall -Wextra -Wunused-parameter -Wcast-align -Wcast-qual -Wconversion -Wformat=2 -Winit-self -Winvalid-pch -Wmissing-format-attribute -Wmissing-include-dirs -Wpacked -Wredundant-decls -Wunreachable-code")
set(LINUX_SUPPRESSIONS "-Wno-deprecated -Wno-unknown-pragmas -Wno-reorder -Wno-unused-function -Wno-char-subscripts -Wno-switch -Wno-unused-but-set-parameter -Wno-unused-value -Wno-unused-local-typedefs -Wno-unused-parameter")

set(WARNINGS "${WARNINGS} ${LINUX_SUPPRESSIONS}")
set(LD_FLAGS "${LD_FLAGS} -Wl,-z,defs")

set(LD_FLAGS "${LD_FLAGS} -Wl,-z,defs")

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -fno-strict-aliasing")

set(STRICT_CXX_FLAGS ${WARNINGS} "-Werror -pedantic")

add_definitions(-DBOOST_LOG_DYN_LINK)
else()
message("-- Unknown compiler, success is doubtful.")
Expand All @@ -90,13 +55,24 @@ set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/Binaries)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/Binaries)

set(AZURESTORAGE_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/includes)
set(AZURESTORAGE_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/includes ${CASABLANCA_INCLUDE_DIRS} ${Boost_INCLUDE_DIR} ${OPENSSL_INCLUDE_DIR} ${LibXML++_INCLUDE_DIRS} ${UUID_INCLUDE_DIRS})
set(AZURESTORAGE_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/includes ${CASABLANCA_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS} ${OPENSSL_INCLUDE_DIRS} ${LibXML++_INCLUDE_DIRS} ${UUID_INCLUDE_DIRS} ${Glibmm_INCLUDE_DIRS})

set(AZURESTORAGE_LIBRARY azurestorage)
set(AZURESTORAGE_LIBRARY_TEST azurestoragetest)
set(AZURESTORAGE_LIBRARIES ${AZURESTORAGE_LIBRARY} ${CASABLANCA_LIBRARIES} ${Boost_LIBRARIES} ${Boost_FRAMEWORK} ${OPENSSL_LIBRARIES} ${LibXML++_LIBRARIES} ${UUID_LIBRARIES})
set(AZURESTORAGE_LIBRARIES ${AZURESTORAGE_LIBRARY} ${CASABLANCA_LIBRARIES} ${Boost_LIBRARIES} ${Boost_FRAMEWORK} ${OPENSSL_LIBRARIES} ${LibXML++_LIBRARIES} ${UUID_LIBRARIES} ${Glibmm_LIBRARIES})

include_directories(${AZURESTORAGE_INCLUDE_DIRS})
# Set version numbers centralized
set (AZURESTORAGE_VERSION_MAJOR 0)
set (AZURESTORAGE_VERSION_MINOR 6)
set (AZURESTORAGE_VERSION_REVISION 0)

# Add sources per configuration
add_subdirectory(src)
#add_subdirectory(tests)

if(BUILD_TESTS)
set(AZURESTORAGE_LIBRARY_TEST azurestoragetest)
add_subdirectory(tests)
endif()

if(BUILD_SAMPLES)
add_subdirectory(samples)
endif()
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\packages\cpprestsdk.2.3.0\build\native\cpprestsdk.props" Condition="Exists('..\packages\cpprestsdk.2.3.0\build\native\cpprestsdk.props')" />
<Import Project="..\packages\openssl.1.0.1.25\build\native\openssl.props" Condition="Exists('..\packages\openssl.1.0.1.25\build\native\openssl.props')" />
<Import Project="..\packages\cpprestsdk.2.4.0.1\build\native\cpprestsdk.props" Condition="Exists('..\packages\cpprestsdk.2.4.0.1\build\native\cpprestsdk.props')" />
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
Expand Down Expand Up @@ -69,7 +68,9 @@
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Label="UserMacros">
<NuGetPackageImportStamp>9386ecc6</NuGetPackageImportStamp>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<LinkIncremental>true</LinkIncremental>
<TargetName>wastorage</TargetName>
Expand Down Expand Up @@ -99,7 +100,7 @@
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<WarningLevel>Level4</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WASTORAGE_DLL;WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck>
Expand All @@ -112,12 +113,13 @@
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>rpcrt4.lib;xmllite.lib;bcrypt.lib;%(AdditionalDependencies)</AdditionalDependencies>
<Profile>true</Profile>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<WarningLevel>Level4</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WASTORAGE_DLL;WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck>
Expand All @@ -130,6 +132,7 @@
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>rpcrt4.lib;xmllite.lib;bcrypt.lib;%(AdditionalDependencies)</AdditionalDependencies>
<Profile>true</Profile>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
Expand Down Expand Up @@ -267,11 +270,14 @@
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
<Import Project="..\packages\zlib.redist.1.2.8.7\build\native\zlib.redist.targets" Condition="Exists('..\packages\zlib.redist.1.2.8.7\build\native\zlib.redist.targets')" />
<Import Project="..\packages\zlib.1.2.8.7\build\native\zlib.targets" Condition="Exists('..\packages\zlib.1.2.8.7\build\native\zlib.targets')" />
<Import Project="..\packages\openssl.redist.1.0.1.25\build\native\openssl.redist.targets" Condition="Exists('..\packages\openssl.redist.1.0.1.25\build\native\openssl.redist.targets')" />
<Import Project="..\packages\openssl.1.0.1.25\build\native\openssl.targets" Condition="Exists('..\packages\openssl.1.0.1.25\build\native\openssl.targets')" />
<Import Project="..\packages\cpprestsdk.2.3.0\build\native\cpprestsdk.targets" Condition="Exists('..\packages\cpprestsdk.2.3.0\build\native\cpprestsdk.targets')" />
<Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
<Import Project="..\packages\cpprestsdk.2.4.0.1\build\native\cpprestsdk.targets" Condition="Exists('..\packages\cpprestsdk.2.4.0.1\build\native\cpprestsdk.targets')" />
</ImportGroup>
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\packages\cpprestsdk.2.4.0.1\build\native\cpprestsdk.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\cpprestsdk.2.4.0.1\build\native\cpprestsdk.props'))" />
<Error Condition="!Exists('..\packages\cpprestsdk.2.4.0.1\build\native\cpprestsdk.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\cpprestsdk.2.4.0.1\build\native\cpprestsdk.targets'))" />
</Target>
</Project>
Loading

0 comments on commit ab5c3b9

Please sign in to comment.