Skip to content

Commit 98d8eb3

Browse files
author
Jianghao Lu
committed
Merge pull request #846 from namratab/roleassignmentmerge
Authorization: Changes to the Get-AzureRoleAssignment commandlet to also display classic admins and perform group expansion for users
2 parents 2a510c9 + b39bd6d commit 98d8eb3

File tree

122 files changed

+30921
-17554
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

122 files changed

+30921
-17554
lines changed

src/Common/Commands.ScenarioTests.Common/Commands.ScenarioTests.Common.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,7 @@
140140
<Compile Include="Mocks\MockClientFactory.cs" />
141141
<Compile Include="Mocks\MockTokenAuthenticationFactory.cs" />
142142
<Compile Include="PermissiveRecordMatcher.cs" />
143+
<Compile Include="PermissiveRecordMatcherWithApiExclusion.cs" />
143144
<Compile Include="PowerShellExtensions.cs" />
144145
<Compile Include="Properties\AssemblyInfo.cs" />
145146
<Compile Include="SMTestBase.cs" />
Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
// ----------------------------------------------------------------------------------
2+
//
3+
// Copyright Microsoft Corporation
4+
// Licensed under the Apache License, Version 2.0 (the "License");
5+
// you may not use this file except in compliance with the License.
6+
// You may obtain a copy of the License at
7+
// http://www.apache.org/licenses/LICENSE-2.0
8+
// Unless required by applicable law or agreed to in writing, software
9+
// distributed under the License is distributed on an "AS IS" BASIS,
10+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11+
// See the License for the specific language governing permissions and
12+
// limitations under the License.
13+
// ----------------------------------------------------------------------------------
14+
15+
using System;
16+
using System.Collections.Generic;
17+
using System.Text;
18+
using System.Text.RegularExpressions;
19+
using Microsoft.Azure.Test.HttpRecorder;
20+
21+
namespace Microsoft.WindowsAzure.Commands.ScenarioTest
22+
{
23+
public class PermissiveRecordMatcherWithApiExclusion : IRecordMatcher
24+
{
25+
private bool _ignoreGenericResource;
26+
private Dictionary<string, string> _providersToIgnore;
27+
28+
public PermissiveRecordMatcherWithApiExclusion(bool ignoreResourcesClient, Dictionary<string, string> providers)
29+
{
30+
_ignoreGenericResource = ignoreResourcesClient;
31+
_providersToIgnore = providers;
32+
}
33+
34+
public string GetMatchingKey(System.Net.Http.HttpRequestMessage request)
35+
{
36+
var path = request.RequestUri.PathAndQuery;
37+
if (path.Contains("?&"))
38+
{
39+
path = path.Replace("?&", "?");
40+
}
41+
42+
string version;
43+
if (ContainsIgnoredProvider(path, out version))
44+
{
45+
path = RemoveApiVersion(path, version);
46+
}
47+
48+
var encodedPath = Convert.ToBase64String(Encoding.UTF8.GetBytes(path));
49+
return string.Format("{0} {1}", request.Method, encodedPath);
50+
}
51+
52+
public string GetMatchingKey(RecordEntry recordEntry)
53+
{
54+
var encodedPath = recordEntry.EncodedRequestUri;
55+
if (recordEntry.RequestUri.Contains("?&"))
56+
{
57+
var updatedPath = recordEntry.RequestUri.Replace("?&", "?");
58+
59+
string version;
60+
if (ContainsIgnoredProvider(updatedPath, out version))
61+
{
62+
updatedPath = RemoveApiVersion(updatedPath, version);
63+
}
64+
65+
encodedPath = Convert.ToBase64String(Encoding.UTF8.GetBytes(updatedPath));
66+
}
67+
68+
return string.Format("{0} {1}", recordEntry.RequestMethod, encodedPath);
69+
}
70+
71+
private bool ContainsIgnoredProvider(string requestUri, out string version)
72+
{
73+
if (_ignoreGenericResource && !requestUri.Contains("providers"))
74+
{
75+
version = String.Empty;
76+
return true;
77+
}
78+
79+
foreach (var provider in _providersToIgnore)
80+
{
81+
var providerString = string.Format("providers/{0}", provider.Key);
82+
if (requestUri.Contains(providerString))
83+
{
84+
version = provider.Value;
85+
return true;
86+
}
87+
}
88+
89+
version = string.Empty;
90+
return false;
91+
}
92+
93+
private string RemoveApiVersion(string requestUri, string version)
94+
{
95+
return Regex.Replace(requestUri, @"\?api-version=[^&]+", string.Format("?api-version={0}", version));
96+
}
97+
}
98+
}

src/Common/Commands.ScenarioTests.ResourceManager.Common/Commands.ScenarioTests.ResourceManager.Common.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,7 @@
142142
<Compile Include="EnvironmentSetupHelper.cs" />
143143
<Compile Include="Mocks\MockClientFactory.cs" />
144144
<Compile Include="Mocks\MockCommandRuntime.cs" />
145+
<Compile Include="PermissiveRecordMatcherWithApiExclusion.cs" />
145146
<Compile Include="PSCmdletExtensions.cs" />
146147
<Compile Include="Constants.cs" />
147148
<Compile Include="Mocks\MockAccessToken.cs" />
Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
// ----------------------------------------------------------------------------------
2+
//
3+
// Copyright Microsoft Corporation
4+
// Licensed under the Apache License, Version 2.0 (the "License");
5+
// you may not use this file except in compliance with the License.
6+
// You may obtain a copy of the License at
7+
// http://www.apache.org/licenses/LICENSE-2.0
8+
// Unless required by applicable law or agreed to in writing, software
9+
// distributed under the License is distributed on an "AS IS" BASIS,
10+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11+
// See the License for the specific language governing permissions and
12+
// limitations under the License.
13+
// ----------------------------------------------------------------------------------
14+
15+
using System;
16+
using System.Collections.Generic;
17+
using System.Text;
18+
using System.Text.RegularExpressions;
19+
using Microsoft.Azure.Test.HttpRecorder;
20+
21+
namespace Microsoft.WindowsAzure.Commands.ScenarioTest
22+
{
23+
// Excludes api version when matching mocked records.
24+
// If alternate api version is provided, uses that to match records else removes the api-version matching.
25+
public class PermissiveRecordMatcherWithApiExclusion : IRecordMatcher
26+
{
27+
private bool _ignoreGenericResource;
28+
private Dictionary<string, string> _providersToIgnore;
29+
30+
public PermissiveRecordMatcherWithApiExclusion(bool ignoreResourcesClient, Dictionary<string, string> providers)
31+
{
32+
_ignoreGenericResource = ignoreResourcesClient;
33+
_providersToIgnore = providers;
34+
}
35+
36+
public string GetMatchingKey(System.Net.Http.HttpRequestMessage request)
37+
{
38+
var path = request.RequestUri.PathAndQuery;
39+
if (path.Contains("?&"))
40+
{
41+
path = path.Replace("?&", "?");
42+
}
43+
44+
string version;
45+
if (ContainsIgnoredProvider(path, out version))
46+
{
47+
path = RemoveOrReplaceApiVersion(path, version);
48+
}
49+
50+
var encodedPath = Convert.ToBase64String(Encoding.UTF8.GetBytes(path));
51+
return string.Format("{0} {1}", request.Method, encodedPath);
52+
}
53+
54+
public string GetMatchingKey(RecordEntry recordEntry)
55+
{
56+
var encodedPath = recordEntry.EncodedRequestUri;
57+
if (recordEntry.RequestUri.Contains("?&"))
58+
{
59+
var updatedPath = recordEntry.RequestUri.Replace("?&", "?");
60+
61+
62+
string version;
63+
if (ContainsIgnoredProvider(updatedPath, out version))
64+
{
65+
updatedPath = RemoveOrReplaceApiVersion(updatedPath, version);
66+
}
67+
68+
encodedPath = Convert.ToBase64String(Encoding.UTF8.GetBytes(updatedPath));
69+
}
70+
71+
return string.Format("{0} {1}", recordEntry.RequestMethod, encodedPath);
72+
}
73+
74+
private bool ContainsIgnoredProvider(string requestUri, out string version)
75+
{
76+
if (_ignoreGenericResource && !requestUri.Contains("providers"))
77+
{
78+
version = String.Empty;
79+
return true;
80+
}
81+
82+
foreach (var provider in _providersToIgnore)
83+
{
84+
var providerString = string.Format("providers/{0}", provider.Key);
85+
if (requestUri.Contains(providerString))
86+
{
87+
version = provider.Value;
88+
return true;
89+
}
90+
}
91+
92+
93+
version = string.Empty;
94+
return false;
95+
}
96+
97+
private string RemoveOrReplaceApiVersion(string requestUri, string version)
98+
{
99+
if (!string.IsNullOrWhiteSpace(version))
100+
{
101+
return Regex.Replace(requestUri, @"\?api-version=[^&]+", string.Format("?api-version={0}", version));
102+
}
103+
else
104+
{
105+
return Regex.Replace(requestUri, @"\?api-version=[^&]+", string.Empty);
106+
}
107+
}
108+
}
109+
}

src/ResourceManager/ApiManagement/Commands.ApiManagement.Test/ScenarioTests/ApiManagementTests.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
// See the License for the specific language governing permissions and
1313
// limitations under the License.
1414

15+
using System.Collections.Generic;
16+
1517
namespace Microsoft.Azure.Commands.ApiManagement.Test.ScenarioTests
1618
{
1719
using System;
@@ -146,6 +148,9 @@ private void RunPowerShellTest(params string[] scripts)
146148
// "TEST_ORGID_AUTHENTICATION",
147149
// "SubscriptionId=;Environment=");
148150
#endif
151+
Dictionary<string, string> d = new Dictionary<string, string>();
152+
d.Add("Microsoft.Authorization", "2014-07-01-preview");
153+
HttpMockServer.Matcher = new PermissiveRecordMatcherWithApiExclusion(false, d);
149154

150155
using (var context = UndoContext.Current)
151156
{

src/ResourceManager/AzureBatch/Commands.Batch.Test/Commands.Batch.Test.csproj

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -60,9 +60,8 @@
6060
<Reference Include="Microsoft.Azure.Gallery">
6161
<HintPath>..\..\..\packages\Microsoft.Azure.Gallery.2.6.2-preview\lib\net40\Microsoft.Azure.Gallery.dll</HintPath>
6262
</Reference>
63-
<Reference Include="Microsoft.Azure.Management.Authorization, Version=0.9.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
64-
<SpecificVersion>False</SpecificVersion>
65-
<HintPath>..\..\..\packages\Microsoft.Azure.Management.Authorization.0.19.2-preview\lib\net40\Microsoft.Azure.Management.Authorization.dll</HintPath>
63+
<Reference Include="Microsoft.Azure.Management.Authorization">
64+
<HintPath>..\..\..\packages\Microsoft.Azure.Management.Authorization.1.0.0\lib\net40\Microsoft.Azure.Management.Authorization.dll</HintPath>
6665
</Reference>
6766
<Reference Include="Microsoft.Azure.Management.Batch">
6867
<HintPath>..\..\..\packages\Microsoft.Azure.Management.Batch.1.4.0\lib\net40\Microsoft.Azure.Management.Batch.dll</HintPath>

src/ResourceManager/AzureBatch/Commands.Batch.Test/ScenarioTests/BatchController.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
using Microsoft.Azure.Test.HttpRecorder;
2222
using Microsoft.WindowsAzure.Commands.ScenarioTest;
2323
using System;
24+
using System.Collections.Generic;
2425
using System.Linq;
2526

2627
namespace Microsoft.Azure.Commands.Batch.Test.ScenarioTests
@@ -73,7 +74,9 @@ public void RunPsTestWorkflow(
7374
string callingClassType,
7475
string mockName)
7576
{
76-
HttpMockServer.Matcher = new PermissiveRecordMatcher();
77+
Dictionary<string, string> d = new Dictionary<string, string>();
78+
d.Add("Microsoft.Authorization", "2014-07-01-preview");
79+
HttpMockServer.Matcher = new PermissiveRecordMatcherWithApiExclusion(false, d);
7780
using (UndoContext context = UndoContext.Current)
7881
{
7982
context.Start(callingClassType, mockName);

src/ResourceManager/AzureBatch/Commands.Batch.Test/packages.config

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<package id="Microsoft.Azure.Common.Authentication" version="1.2.2-preview" targetFramework="net45" />
77
<package id="Microsoft.Azure.Common.Dependencies" version="1.0.0" targetFramework="net45" />
88
<package id="Microsoft.Azure.Gallery" version="2.6.2-preview" targetFramework="net45" />
9-
<package id="Microsoft.Azure.Management.Authorization" version="0.19.2-preview" targetFramework="net45" />
9+
<package id="Microsoft.Azure.Management.Authorization" version="1.0.0" targetFramework="net45" />
1010
<package id="Microsoft.Azure.Management.Batch" version="1.4.0" targetFramework="net45" />
1111
<package id="Microsoft.Azure.Management.Resources" version="2.18.7-preview" targetFramework="net45" />
1212
<package id="Microsoft.Azure.Test.Framework" version="1.0.5715.36130-prerelease" targetFramework="net45" />

src/ResourceManager/Compute/Commands.Compute.Test/Commands.Compute.Test.csproj

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -63,9 +63,8 @@
6363
<SpecificVersion>False</SpecificVersion>
6464
<HintPath>..\..\..\packages\Microsoft.Azure.Graph.RBAC.1.7.0-preview\lib\net40\Microsoft.Azure.Graph.RBAC.dll</HintPath>
6565
</Reference>
66-
<Reference Include="Microsoft.Azure.Management.Authorization, Version=0.9.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
67-
<SpecificVersion>False</SpecificVersion>
68-
<HintPath>..\..\..\packages\Microsoft.Azure.Management.Authorization.0.19.2-preview\lib\net40\Microsoft.Azure.Management.Authorization.dll</HintPath>
66+
<Reference Include="Microsoft.Azure.Management.Authorization">
67+
<HintPath>..\..\..\packages\Microsoft.Azure.Management.Authorization.1.0.0\lib\net40\Microsoft.Azure.Management.Authorization.dll</HintPath>
6968
</Reference>
7069
<Reference Include="Microsoft.Azure.Management.Compute, Version=8.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
7170
<HintPath>..\..\..\packages\Microsoft.Azure.Management.Compute.8.2.0\lib\net40\Microsoft.Azure.Management.Compute.dll</HintPath>

src/ResourceManager/Compute/Commands.Compute.Test/Common/ComputeTestController.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
using Microsoft.Azure.Management.Storage;
2626
using Microsoft.Azure.Test;
2727
using System;
28+
using System.Collections.Generic;
2829
using System.Linq;
2930
using Microsoft.Azure.Common.Authentication;
3031
using Microsoft.WindowsAzure.Commands.Test.Utilities.Common;
@@ -96,6 +97,10 @@ public void RunPsTestWorkflow(
9697
string callingClassType,
9798
string mockName)
9899
{
100+
Dictionary<string, string> d = new Dictionary<string, string>();
101+
d.Add("Microsoft.Authorization", "2014-07-01-preview");
102+
HttpMockServer.Matcher = new PermissiveRecordMatcherWithApiExclusion(false, d);
103+
99104
using (UndoContext context = UndoContext.Current)
100105
{
101106
context.Start(callingClassType, mockName);

src/ResourceManager/Compute/Commands.Compute.Test/packages.config

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<package id="Microsoft.Azure.Common.Dependencies" version="1.0.0" targetFramework="net45" />
77
<package id="Microsoft.Azure.Gallery" version="2.6.2-preview" targetFramework="net45" />
88
<package id="Microsoft.Azure.Graph.RBAC" version="1.7.0-preview" targetFramework="net45" />
9-
<package id="Microsoft.Azure.Management.Authorization" version="0.19.2-preview" targetFramework="net45" />
9+
<package id="Microsoft.Azure.Management.Authorization" version="1.0.0" targetFramework="net45" />
1010
<package id="Microsoft.Azure.Management.Compute" version="8.2.0" targetFramework="net45" />
1111
<package id="Microsoft.Azure.Management.Network" version="2.0.9-preview" targetFramework="net45" />
1212
<package id="Microsoft.Azure.Management.Resources" version="2.18.7-preview" targetFramework="net45" />

src/ResourceManager/Compute/Commands.Compute/Commands.Compute.csproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,9 +72,9 @@
7272
<SpecificVersion>False</SpecificVersion>
7373
<HintPath>..\..\..\packages\Microsoft.Azure.Graph.RBAC.1.7.0-preview\lib\net40\Microsoft.Azure.Graph.RBAC.dll</HintPath>
7474
</Reference>
75-
<Reference Include="Microsoft.Azure.Management.Authorization, Version=0.9.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
76-
<SpecificVersion>False</SpecificVersion>
77-
<HintPath>..\..\..\packages\Microsoft.Azure.Management.Authorization.0.19.2-preview\lib\net40\Microsoft.Azure.Management.Authorization.dll</HintPath>
75+
<Reference Include="Microsoft.Azure.Management.Authorization">
76+
<HintPath>..\..\..\packages\Microsoft.Azure.Management.Authorization.1.0.0\lib\net40\Microsoft.Azure.Management.Authorization.dll</HintPath>
77+
<Private>True</Private>
7878
</Reference>
7979
<Reference Include="Microsoft.Azure.Management.Compute, Version=8.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
8080
<HintPath>..\..\..\packages\Microsoft.Azure.Management.Compute.8.2.0\lib\net40\Microsoft.Azure.Management.Compute.dll</HintPath>

src/ResourceManager/Compute/Commands.Compute/packages.config

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<package id="Microsoft.Azure.Common.Dependencies" version="1.0.0" targetFramework="net45" />
88
<package id="Microsoft.Azure.Gallery" version="2.6.2-preview" targetFramework="net45" />
99
<package id="Microsoft.Azure.Graph.RBAC" version="1.7.0-preview" targetFramework="net45" />
10-
<package id="Microsoft.Azure.Management.Authorization" version="0.19.2-preview" targetFramework="net45" />
10+
<package id="Microsoft.Azure.Management.Authorization" version="1.0.0" targetFramework="net45" />
1111
<package id="Microsoft.Azure.Management.Compute" version="8.2.0" targetFramework="net45" />
1212
<package id="Microsoft.Azure.Management.Network" version="2.0.9-preview" targetFramework="net45" />
1313
<package id="Microsoft.Azure.Management.Resources" version="2.18.7-preview" targetFramework="net45" />

src/ResourceManager/DataFactories/Commands.DataFactories.Test/Commands.DataFactories.Test.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,9 +63,9 @@
6363
<HintPath>..\..\..\packages\Microsoft.Azure.KeyVault.Core.1.0.0\lib\net40\Microsoft.Azure.KeyVault.Core.dll</HintPath>
6464
<Private>True</Private>
6565
</Reference>
66-
<Reference Include="Microsoft.Azure.Management.Authorization, Version=0.9.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
66+
<Reference Include="Microsoft.Azure.Management.Authorization">
6767
<SpecificVersion>False</SpecificVersion>
68-
<HintPath>..\..\..\packages\Microsoft.Azure.Management.Authorization.0.19.2-preview\lib\net40\Microsoft.Azure.Management.Authorization.dll</HintPath>
68+
<HintPath>..\..\..\packages\Microsoft.Azure.Management.Authorization.1.0.0\lib\net40\Microsoft.Azure.Management.Authorization.dll</HintPath>
6969
</Reference>
7070
<Reference Include="Microsoft.Azure.Management.DataFactories, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
7171
<HintPath>..\..\..\packages\Microsoft.Azure.Management.DataFactories.3.0.0\lib\net45\Microsoft.Azure.Management.DataFactories.dll</HintPath>

src/ResourceManager/DataFactories/Commands.DataFactories.Test/ScenarioTests/DataFactoriesScenarioTestsBase.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
// limitations under the License.
1313
// ----------------------------------------------------------------------------------
1414

15+
using System.Collections.Generic;
1516
using Microsoft.Azure.Common.Authentication;
1617
using Microsoft.Azure.Gallery;
1718
using Microsoft.Azure.Management.Authorization;
@@ -53,7 +54,9 @@ protected void SetupManagementClients()
5354

5455
protected void RunPowerShellTest(params string[] scripts)
5556
{
56-
HttpMockServer.Matcher = new PermissiveRecordMatcher();
57+
Dictionary<string, string> d = new Dictionary<string, string>();
58+
d.Add("Microsoft.Authorization", "2014-07-01-preview");
59+
HttpMockServer.Matcher = new PermissiveRecordMatcherWithApiExclusion(false, d);
5760
using (UndoContext context = UndoContext.Current)
5861
{
5962
context.Start(TestUtilities.GetCallingClass(2), TestUtilities.GetCurrentMethodName(2));

src/ResourceManager/DataFactories/Commands.DataFactories.Test/packages.config

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,12 @@
66
<package id="Microsoft.Azure.Common.Dependencies" version="1.0.0" targetFramework="net45" />
77
<package id="Microsoft.Azure.Gallery" version="2.6.2-preview" targetFramework="net45" />
88
<package id="Microsoft.Azure.KeyVault.Core" version="1.0.0" targetFramework="net45" />
9-
<package id="Microsoft.Azure.Management.Authorization" version="0.19.2-preview" targetFramework="net45" />
9+
<package id="Microsoft.Azure.Management.Authorization" version="1.0.0" targetFramework="net45" />
1010
<package id="Microsoft.Azure.Management.Resources" version="2.18.7-preview" targetFramework="net45" />
1111
<package id="Microsoft.Azure.Test.Framework" version="1.0.5715.36130-prerelease" targetFramework="net45" />
1212
<package id="Microsoft.Azure.Test.HttpRecorder" version="1.0.5715.36130-prerelease" targetFramework="net45" />
13-
<package id="Microsoft.Azure.Management.DataFactories" version="3.0.0" targetFramework="net45" /> <package id="Microsoft.Bcl" version="1.1.9" targetFramework="net45" />
13+
<package id="Microsoft.Azure.Management.DataFactories" version="3.0.0" targetFramework="net45" />
14+
<package id="Microsoft.Bcl" version="1.1.9" targetFramework="net45" />
1415
<package id="Microsoft.Bcl.Async" version="1.0.168" targetFramework="net45" />
1516
<package id="Microsoft.Bcl.Build" version="1.0.14" targetFramework="net45" />
1617
<package id="Microsoft.Data.Edm" version="5.6.4" targetFramework="net45" />

0 commit comments

Comments
 (0)