diff --git a/eng/Packages.Data.props b/eng/Packages.Data.props index c4a4cdad5b51c..5210ca31ed889 100644 --- a/eng/Packages.Data.props +++ b/eng/Packages.Data.props @@ -225,7 +225,7 @@ - + @@ -237,9 +237,9 @@ - - - + + + @@ -341,6 +341,19 @@ + + + + + + + + + + + + + 1.0.0-dev.20230821.1 diff --git a/sdk/extensions/wcf/Directory.Build.props b/sdk/extensions/wcf/Directory.Build.props index 3ffe86256be32..f306f0571710a 100644 --- a/sdk/extensions/wcf/Directory.Build.props +++ b/sdk/extensions/wcf/Directory.Build.props @@ -1,9 +1,10 @@ - - - true - true - + + + true + true + true + - + diff --git a/sdk/extensions/wcf/Microsoft.CoreWCF.Azure.StorageQueues/README.MD b/sdk/extensions/wcf/Microsoft.CoreWCF.Azure.StorageQueues/README.MD deleted file mode 100644 index f0fe2543a6931..0000000000000 --- a/sdk/extensions/wcf/Microsoft.CoreWCF.Azure.StorageQueues/README.MD +++ /dev/null @@ -1,88 +0,0 @@ -# CoreWCF Azure Queue Storage library - -CoreWCF Azure Queue Storage is the sertvice side library that will help existing WCF services to be able to use Azure Queue Storage to communicate with clients instead of using MSMQ. - -## Getting started - -### Install the package - -Install the Azure.CoreWCF.AzureQueueStorage library for .NET with [NuGet][nuget]: - -```dotnetcli -dotnet add package Azure.CoreWCF.AzureQueueStorage -``` - -### Prerequisites - -* An [Azure subscription][azure_sub]. -* An existing [Configuration Store][configuration_store]. - -If you need to create a Configuration Store, you can use the Azure Portal or [Azure CLI][azure_cli]. - -You can use the Azure CLI to create the Configuration Store with the following command: - -```PowerShell -az appconfig create --name --resource-group --location eastus -``` - -### Authenticate the client - -In order to interact with the App Configuration service, you'll need to create an instance of the [Configuration Client][configuration_client_class] class. To make this possible, you'll need the connection string of the Configuration Store. - -#### Get credentials - -Use the snippet below to get the connection string from the Configuration Store. - -```PowerShell -az appconfig credential list --name -``` - -Alternatively, get the connection string from the Azure Portal. - -#### Choose AzureQueueStorageMessageEncoding - -Use one of the Message Encoding available. - -```C# -public enum AzureQueueStorageMessageEncoding -{ - /// - /// Indicates using Binary message encoder. - /// - Binary, - - /// - /// Indicates using Text message encoder. - /// - Text, -} -``` - -#### Create AzureQueueStorageBinding - -Once you have the value of the connection string, you can create the AzureQueueStorageBinding by also passing in an optional dead letter queue name: - -```C# Snippet:CreateConfigurationClient -string connectionString = ""; -string deadletterQueueName = ""; -app.UseServiceModel(services => -{ - services.AddService(); - services.AddServiceEndpoint(new AzureQueueStorageBinding(connectionString, deadLetterQueueName) - { - MessageEncoding = AzureQueueStorageMessageEncoding.Binary - }, - endpointUrlString); -}); -``` - -#### Get the service and receive messages. - -```C# Snippet -var serviceContract = host.Services.GetRequiredService(); -var message = serviceContract.ReceiveMessages(); -``` - -## Key concepts - -CoreWCF is a port of the service side of Windows Communication Foundation (WCF) to .NET Core. The goal of this project is to enable existing WCF services to be able to use Azure Queue Storage to communicate with clients. diff --git a/sdk/extensions/wcf/Microsoft.CoreWCF.Azure.StorageQueues/README.md b/sdk/extensions/wcf/Microsoft.CoreWCF.Azure.StorageQueues/README.md new file mode 100644 index 0000000000000..10b62db907dcd --- /dev/null +++ b/sdk/extensions/wcf/Microsoft.CoreWCF.Azure.StorageQueues/README.md @@ -0,0 +1,79 @@ +# CoreWCF Azure Queue Storage library + +CoreWCF Azure Queue Storage is the service side library that will help existing WCF services to be able to use Azure Queue Storage to communicate with clients as a modern replacement to using MSMQ. + +## Getting started + +### Install the package + +Install the Microsoft.CoreWCF.Azure.StorageQueues library for .NET with [NuGet][nuget]: + +```dotnetcli +dotnet add package Microsoft.CoreWCF.Azure.StorageQueues +``` + +### Prerequisites + +You need an [Azure subscription][azure_sub] and a +[Storage Account][storage_account_docs] to use this package. + +To create a new Storage Account, you can use the [Azure Portal][storage_account_create_portal], +[Azure PowerShell][storage_account_create_ps], or the [Azure CLI][storage_account_create_cli]. +Here's an example using the Azure CLI: + +```Powershell +az storage account create --name MyStorageAccount --resource-group MyResourceGroup --location westus --sku Standard_LRS +``` + +### Authenticate the service to Azure + +In order to receive requests from the Azure Queue Storage service, you'll need to configure CoreWCF with the appropriate endpoint and credentials. The [Azure Identity library][identity] makes it easy to add Azure Active Directory support for authenticating with Azure services. + +```C# Snippet:CoreWCF_Azure_Storage_Queues_Sample_DefaultAzureCredential +app.UseServiceModel(services => +{ + // Configure CoreWCF to dispatch to service type Service + services.AddService(); + // Create a binding instance to use Azure Queue Storage, passing an optional queue name for the dead letter queue + var aqsBinding = new AzureQueueStorageBinding("DEADLETTERQUEUENAME"); + // Configure the client credential type to use DefaultAzureCredential + binding.Security.Transport.ClientCredentialType = AzureClientCredentialType.Default; + string queueEndpointString = "https://MYSTORAGEACCOUNT.queue.core.windows.net/QUEUENAME"; + services.AddServiceEndpoint(aqsBinding, queueEndpointString); +}); +``` +Learn more about enabling Azure Active Directory for authentication with Azure Storage in [our documentation][storage_ad]. + +If you are using a different credential mechanism such as `StorageSharedKeyCredential`, you can configure the appropriate `ClientCredentialType` and set the credential on an `AzureServiceCredential` instance via an extension method. +```C# Snippet:CoreWCF_Azure_Storage_Queus_Sample_StorageSharedKey +StorageSharedKeyCredential storageSharedKey = GetStorageSharedKey(); +app.UseServiceModel(services => +{ + // Configure CoreWCF to dispatch to service type Service + services.AddService(); + // Create a binding instance to use Azure Queue Storage, passing an optional queue name for the dead letter queue + var aqsBinding = new AzureQueueStorageBinding("DEADLETTERQUEUENAME"); + // Configure the client credential type to use StorageSharedKeyCredential + binding.Security.Transport.ClientCredentialType = AzureClientCredentialType.StorageSharedKey; + string queueEndpointString = "https://MYSTORAGEACCOUNT.queue.core.windows.net/QUEUENAME"; + services.AddServiceEndpoint(aqsBinding, queueEndpointString); + services.UseAzureCredentials(credentials => + { + credentials.StorageSharedKey = storageSharedKey; + }); +}); +``` +## Key concepts + +CoreWCF is an implementation of the service side features of Windows Communication Foundation (WCF) for .NET. The goal of this project is to enable migrating existing WCF services to .NET that are currently using MSMQ and wish to deploy their service to Azure, replacing MSMQ with Azure Queue Storage. + + +[nuget]: https://www.nuget.org/ +[storage_account_docs]: https://docs.microsoft.com/azure/storage/common/storage-account-overview +[storage_account_create_ps]: https://docs.microsoft.com/azure/storage/common/storage-quickstart-create-account?tabs=azure-powershell +[storage_account_create_cli]: https://docs.microsoft.com/azure/storage/common/storage-quickstart-create-account?tabs=azure-cli +[storage_account_create_portal]: https://docs.microsoft.com/azure/storage/common/storage-quickstart-create-account?tabs=azure-portal +[azure_cli]: https://docs.microsoft.com/cli/azure +[azure_sub]: https://azure.microsoft.com/free/dotnet/ +[identity]: https://github.com/Azure/azure-sdk-for-net/tree/main/sdk/identity/Azure.Identity/README.md +[storage_ad]: https://docs.microsoft.com/azure/storage/common/storage-auth-aad diff --git a/sdk/extensions/wcf/Microsoft.CoreWCF.Azure.StorageQueues/src/Microsoft/CoreWCF/Azure/StorageQueues/Channels/AzureQueueStorageTransportBindingElement.cs b/sdk/extensions/wcf/Microsoft.CoreWCF.Azure.StorageQueues/src/Microsoft/CoreWCF/Azure/StorageQueues/Channels/AzureQueueStorageTransportBindingElement.cs index c98970a82d93d..c5de6d0c1684f 100644 --- a/sdk/extensions/wcf/Microsoft.CoreWCF.Azure.StorageQueues/src/Microsoft/CoreWCF/Azure/StorageQueues/Channels/AzureQueueStorageTransportBindingElement.cs +++ b/sdk/extensions/wcf/Microsoft.CoreWCF.Azure.StorageQueues/src/Microsoft/CoreWCF/Azure/StorageQueues/Channels/AzureQueueStorageTransportBindingElement.cs @@ -72,6 +72,10 @@ public override T GetProperty(BindingContext context) return base.GetProperty(context); } + /// + /// Configures CoreWCF with a dummy net.aqs base address in the case that the endpoint uri is provided in a connection string. + /// + /// The ASP.NET Core application builder for the service void ITransportServiceBuilder.Configure(IApplicationBuilder app) { // When using a ConnectionString, the queue endpoint url could be provided diff --git a/sdk/extensions/wcf/Microsoft.CoreWCF.Azure.StorageQueues/tests/Microsoft.CoreWCF.Azure.StorageQueues.Tests.csproj b/sdk/extensions/wcf/Microsoft.CoreWCF.Azure.StorageQueues/tests/Microsoft.CoreWCF.Azure.StorageQueues.Tests.csproj index c837e04f67790..ebadfac39962c 100644 --- a/sdk/extensions/wcf/Microsoft.CoreWCF.Azure.StorageQueues/tests/Microsoft.CoreWCF.Azure.StorageQueues.Tests.csproj +++ b/sdk/extensions/wcf/Microsoft.CoreWCF.Azure.StorageQueues/tests/Microsoft.CoreWCF.Azure.StorageQueues.Tests.csproj @@ -40,8 +40,6 @@ - - diff --git a/sdk/extensions/wcf/Microsoft.WCF.Azure.StorageQueues/README.MD b/sdk/extensions/wcf/Microsoft.WCF.Azure.StorageQueues/README.MD index 8416ebf46d38e..47c9c11fe32f2 100644 --- a/sdk/extensions/wcf/Microsoft.WCF.Azure.StorageQueues/README.MD +++ b/sdk/extensions/wcf/Microsoft.WCF.Azure.StorageQueues/README.MD @@ -1,6 +1,6 @@ # WCF Azure Queue Storage client library -WCF Azure Queue Storage client is the client side library that will help WCF clients to be able to use Azure Queue Storage instead of using MSMQ. +WCF Azure Queue Storage client is the client side library that will enable WCF clients to be able to send requests to a CoreWCF service which uses Azure Queue Storage as a transport. ## Getting started @@ -9,86 +9,80 @@ WCF Azure Queue Storage client is the client side library that will help WCF cli Install the Azure.WCF.AzureQueueStorage.Client library for .NET with [NuGet][nuget]: ```dotnetcli -dotnet add package Azure.WCF.AzureQueueStorage.Client +dotnet add package Microsoft.WCF.Azure.StorageQueues.Client ``` ### Prerequisites -* An [Azure subscription][azure_sub]. -* An existing [Configuration Store][configuration_store]. +You need an [Azure subscription][azure_sub] and a +[Storage Account][storage_account_docs] to use this package. -If you need to create a Configuration Store, you can use the Azure Portal or [Azure CLI][azure_cli]. +To create a new Storage Account, you can use the [Azure Portal][storage_account_create_portal], +[Azure PowerShell][storage_account_create_ps], or the [Azure CLI][storage_account_create_cli]. +Here's an example using the Azure CLI: -You can use the Azure CLI to create the Configuration Store with the following command: - -```PowerShell -az appconfig create --name --resource-group --location eastus +```Powershell +az storage account create --name MyStorageAccount --resource-group MyResourceGroup --location westus --sku Standard_LRS ``` ### Authenticate the client -In order to interact with the App Configuration service, you'll need to create an instance of the [Configuration Client][configuration_client_class] class. To make this possible, you'll need the connection string of the Configuration Store. - -#### Get credentials - -Use the snippet below to get the connection string from the Configuration Store. - -```PowerShell -az appconfig credential list --name -``` - -Alternatively, get the connection string from the Azure Portal. +In order to send requests to the Azure Queue Storage service, you'll need to configure WCF with the appropriate endpoint and credentials. The [Azure Identity library][identity] makes it easy to add Azure Active Directory support for authenticating with Azure services. -#### Choose AzureQueueStorageMessageEncoding +```C# Snippet:WCF_Azure_Storage_Queues_Sample_DefaultAzureCredential +string queueEndpointString = "https://MYSTORAGEACCOUNT.queue.core.windows.net/QUEUENAME"; +// Create a binding instance to use Azure Queue Storage +var aqsBinding = new AzureQueueStorageBinding("DEADLETTERQUEUENAME"); +// Configure the client credential type to use DefaultAzureCredential +binding.Security.Transport.ClientCredentialType = AzureClientCredentialType.Default; -Use one of the Message Encoding available. - -```C# -public enum AzureQueueStorageMessageEncoding +await using(var factory = new ChannelFactory(aqsBinding, new EndpointAddress(queueEndpointString))) { - /// - /// Indicates using Binary message encoder. - /// - Binary, - - /// - /// Indicates using Text message encoder. - /// - Text, + factory.Open(); + await using (IServiceContract client = factory.CreateChannel()) + { + ((System.ServiceModel.Channels.IChannel)channel).Open(); + await client.SendAsync("Hello World!"); + } } ``` - -#### Create AzureQueueStorageBinding - -Once you have the value of the connection string, you can create the AzureQueueStorageBinding by also passing in a encoding type: - -```C# Snippet:CreateConfigurationClient -string connectionString = ""; -AzureQueueStorageMessageEncoding encoding = ; -AzureQueueStorageBinding azureQueueStorageBinding = new(connectionString, encoding); -``` - -#### Create ChannelFactory and communicate with Queue - -```C# Snippet -Var endpointUrl = ; - var factory = new ChannelFactory(binding, new EndpointAddress(endpointUrl)); - factory.Open(); - try - { - IServiceContract client = factory.CreateChannel(); - ((System.ServiceModel.Channels.IChannel)channel).Open(); - await client.Send("Hello World!"); - channel.Close(); - } - finally - { - factory.Close(); - } +Learn more about enabling Azure Active Directory for authentication with Azure Storage in [our documentation][storage_ad]. + +If you are using a different credential mechanism such as `StorageSharedKeyCredential`, you can configure the appropriate `ClientCredentialType` and set the credential on an `AzureServiceCredential` instance via an extension method. +```C# Snippet:WCF_Azure_Storage_Queus_Sample_StorageSharedKey +StorageSharedKeyCredential storageSharedKey = GetStorageSharedKey(); +string queueEndpointString = "https://MYSTORAGEACCOUNT.queue.core.windows.net/QUEUENAME"; +// Create a binding instance to use Azure Queue Storage +var aqsBinding = new AzureQueueStorageBinding("DEADLETTERQUEUENAME"); +// Configure the client credential type to use StorageSharedKeyCredential +binding.Security.Transport.ClientCredentialType = AzureClientCredentialType.StorageSharedKey; + +await using(var factory = new ChannelFactory(aqsBinding, new EndpointAddress(queueEndpointString))) +{ + channelFactory.UseAzureCredentials(credentials => + { + credentials.StorageSharedKey = storageSharedKey; + }); + + factory.Open(); + await using (IServiceContract client = factory.CreateChannel()) + { + ((System.ServiceModel.Channels.IChannel)channel).Open(); + await client.SendAsync("Hello World!"); + } +} ``` ## Key concepts -The goal of this project is to enable WCF clients to be able to use Azure Queue Storage. - - +The goal of this project is to enable migrating existing WCF clients to .NET that are currently using MSMQ and wish to deploy their service to Azure, replacing MSMQ with Azure Queue Storage. + + +[nuget]: https://www.nuget.org/ +[storage_account_docs]: https://docs.microsoft.com/azure/storage/common/storage-account-overview +[storage_account_create_ps]: https://docs.microsoft.com/azure/storage/common/storage-quickstart-create-account?tabs=azure-powershell +[storage_account_create_cli]: https://docs.microsoft.com/azure/storage/common/storage-quickstart-create-account?tabs=azure-cli +[storage_account_create_portal]: https://docs.microsoft.com/azure/storage/common/storage-quickstart-create-account?tabs=azure-portal +[azure_sub]: https://azure.microsoft.com/free/dotnet/ +[identity]: https://github.com/Azure/azure-sdk-for-net/tree/main/sdk/identity/Azure.Identity/README.md +[storage_ad]: https://docs.microsoft.com/azure/storage/common/storage-auth-aad \ No newline at end of file diff --git a/sdk/extensions/wcf/Microsoft.WCF.Azure.StorageQueues/src/Microsoft/WCF/Azure/StorageQueues/Channels/AzureQueueStorageOutputChannel.cs b/sdk/extensions/wcf/Microsoft.WCF.Azure.StorageQueues/src/Microsoft/WCF/Azure/StorageQueues/Channels/AzureQueueStorageOutputChannel.cs index 5a38ba4626de4..20f90239c13d0 100644 --- a/sdk/extensions/wcf/Microsoft.WCF.Azure.StorageQueues/src/Microsoft/WCF/Azure/StorageQueues/Channels/AzureQueueStorageOutputChannel.cs +++ b/sdk/extensions/wcf/Microsoft.WCF.Azure.StorageQueues/src/Microsoft/WCF/Azure/StorageQueues/Channels/AzureQueueStorageOutputChannel.cs @@ -44,6 +44,9 @@ public AzureQueueStorageOutputChannel( } #region IOutputChannel_Properties + /// + /// Gets the destination of the service to which messages are sent out on the output channel. + /// EndpointAddress IOutputChannel.RemoteAddress { get @@ -52,6 +55,9 @@ EndpointAddress IOutputChannel.RemoteAddress } } + /// + /// Gets the URI that contains the transport address to which messages are sent on the output channel. + /// Uri IOutputChannel.Via { get diff --git a/sdk/extensions/wcf/Microsoft.WCF.Azure.StorageQueues/tests/Microsoft.WCF.Azure.StorageQueues.Tests.csproj b/sdk/extensions/wcf/Microsoft.WCF.Azure.StorageQueues/tests/Microsoft.WCF.Azure.StorageQueues.Tests.csproj index b88f6fe1941b7..7bf3dc3909b4d 100644 --- a/sdk/extensions/wcf/Microsoft.WCF.Azure.StorageQueues/tests/Microsoft.WCF.Azure.StorageQueues.Tests.csproj +++ b/sdk/extensions/wcf/Microsoft.WCF.Azure.StorageQueues/tests/Microsoft.WCF.Azure.StorageQueues.Tests.csproj @@ -29,8 +29,6 @@ - - diff --git a/sdk/extensions/wcf/Microsoft.WCF.Azure.StorageQueues/tests/QueueClientConfigurationTests.cs b/sdk/extensions/wcf/Microsoft.WCF.Azure.StorageQueues/tests/QueueClientConfigurationTests.cs index 656f7ece4d588..1be170db1daf9 100644 --- a/sdk/extensions/wcf/Microsoft.WCF.Azure.StorageQueues/tests/QueueClientConfigurationTests.cs +++ b/sdk/extensions/wcf/Microsoft.WCF.Azure.StorageQueues/tests/QueueClientConfigurationTests.cs @@ -78,16 +78,9 @@ private IClientChannel CreateChannel(string queueName, string accountName = null } var endpointUrlString = endpointUri.AbsoluteUri; - AzureQueueStorageBinding azureQueueStorageBinding = new() - { - Security = new() - { - Transport = new() - { - ClientCredentialType = AzureClientCredentialType.ConnectionString - } - } - }; + AzureQueueStorageBinding azureQueueStorageBinding = new(); + azureQueueStorageBinding.Security.Transport.ClientCredentialType = AzureClientCredentialType.ConnectionString; + var channelFactory = new ChannelFactory(azureQueueStorageBinding, new EndpointAddress(endpointUrlString)); channelFactory.UseAzureCredentials(creds => { diff --git a/sdk/extensions/wcf/Packages.props b/sdk/extensions/wcf/Packages.props deleted file mode 100644 index 8253902575898..0000000000000 --- a/sdk/extensions/wcf/Packages.props +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/sdk/extensions/wcf/WCF.sln b/sdk/extensions/wcf/WCF.sln index f5ee5ce1b4733..c5d4a87166808 100644 --- a/sdk/extensions/wcf/WCF.sln +++ b/sdk/extensions/wcf/WCF.sln @@ -7,10 +7,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{A8861001-CA2 EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{F44B9E86-431A-454B-AB2E-AC2154813FE3}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Azure.Storage.Queues", "..\..\storage\Azure.Storage.Queues\src\Azure.Storage.Queues.csproj", "{1144D9F2-355F-4F4F-9C02-86BBC3C3CD01}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Azure.Storage.Common.Tests", "..\..\storage\Azure.Storage.Common\tests\Azure.Storage.Common.Tests.csproj", "{282A961B-A80B-4346-AF52-EF5C39F0639C}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.CoreWCF.Azure.StorageQueues", "Microsoft.CoreWCF.Azure.StorageQueues\src\Microsoft.CoreWCF.Azure.StorageQueues.csproj", "{190C23E4-DA1C-424C-A672-78DB9D171671}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.WCF.Azure.StorageQueues", "Microsoft.WCF.Azure.StorageQueues\src\Microsoft.WCF.Azure.StorageQueues.csproj", "{CCB3DDE6-1A1E-4B7D-89FB-43371202CEEB}" @@ -32,14 +28,6 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {1144D9F2-355F-4F4F-9C02-86BBC3C3CD01}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1144D9F2-355F-4F4F-9C02-86BBC3C3CD01}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1144D9F2-355F-4F4F-9C02-86BBC3C3CD01}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1144D9F2-355F-4F4F-9C02-86BBC3C3CD01}.Release|Any CPU.Build.0 = Release|Any CPU - {282A961B-A80B-4346-AF52-EF5C39F0639C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {282A961B-A80B-4346-AF52-EF5C39F0639C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {282A961B-A80B-4346-AF52-EF5C39F0639C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {282A961B-A80B-4346-AF52-EF5C39F0639C}.Release|Any CPU.Build.0 = Release|Any CPU {190C23E4-DA1C-424C-A672-78DB9D171671}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {190C23E4-DA1C-424C-A672-78DB9D171671}.Debug|Any CPU.Build.0 = Debug|Any CPU {190C23E4-DA1C-424C-A672-78DB9D171671}.Release|Any CPU.ActiveCfg = Release|Any CPU diff --git a/sdk/storage/Azure.Storage.Queues/src/Azure.Storage.Queues.sln b/sdk/storage/Azure.Storage.Queues/src/Azure.Storage.Queues.sln deleted file mode 100644 index 430ec8902c9d7..0000000000000 --- a/sdk/storage/Azure.Storage.Queues/src/Azure.Storage.Queues.sln +++ /dev/null @@ -1,31 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.8.34322.80 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Azure.Storage.Queues", "Azure.Storage.Queues.csproj", "{FBBC53B2-1A8C-4597-BDA4-E26A8B42A6AB}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Azure.Storage.Common", "..\..\Azure.Storage.Common\src\Azure.Storage.Common.csproj", "{86719177-88DE-496B-8802-6F491659466C}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {FBBC53B2-1A8C-4597-BDA4-E26A8B42A6AB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FBBC53B2-1A8C-4597-BDA4-E26A8B42A6AB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FBBC53B2-1A8C-4597-BDA4-E26A8B42A6AB}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FBBC53B2-1A8C-4597-BDA4-E26A8B42A6AB}.Release|Any CPU.Build.0 = Release|Any CPU - {86719177-88DE-496B-8802-6F491659466C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {86719177-88DE-496B-8802-6F491659466C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {86719177-88DE-496B-8802-6F491659466C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {86719177-88DE-496B-8802-6F491659466C}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {296111D8-1F90-4155-AD01-FFDD33051E60} - EndGlobalSection -EndGlobal diff --git a/sdk/storage/Azure.Storage.Queues/tests/Azure.Storage.Queues.Tests.sln b/sdk/storage/Azure.Storage.Queues/tests/Azure.Storage.Queues.Tests.sln deleted file mode 100644 index cf964f4f1e756..0000000000000 --- a/sdk/storage/Azure.Storage.Queues/tests/Azure.Storage.Queues.Tests.sln +++ /dev/null @@ -1,25 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.8.34322.80 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Azure.Storage.Queues.Tests", "Azure.Storage.Queues.Tests.csproj", "{5A84F3DF-7260-42B1-B5BD-B9ACCB4506CA}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {5A84F3DF-7260-42B1-B5BD-B9ACCB4506CA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5A84F3DF-7260-42B1-B5BD-B9ACCB4506CA}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5A84F3DF-7260-42B1-B5BD-B9ACCB4506CA}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5A84F3DF-7260-42B1-B5BD-B9ACCB4506CA}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {1007F6DA-FEA8-4F7E-8B00-BB615615947D} - EndGlobalSection -EndGlobal