Ошибка сборки при использовании пакета WindowsAzure.Servicebus версии 4.1.10 в приложении .NET 4.5 - PullRequest
0 голосов
/ 01 июня 2018

Кажется, я не могу использовать эту библиотеку в проекте

Код серьезности Описание Ошибка состояния подавления строки файла проекта CS0246 Не удалось найти тип или имя пространства имен WindowsAzure (отсутствует директива using илиссылка на сборку?) ClassLibrary2 \ Visual Studio 2017 \ Projects \ ClassLibrary2 \ ClassLibrary2 \ EntityListener.cs 24 Актив

using WindowsAzure.Servicebus;

Я установил с помощью диспетчера пакетов nuget, и он определен в моем файле packages.config.Почему я не могу его использовать?

Packages.config:

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="WindowsAzure.ServiceBus" version="4.1.10" targetFramework="net452" />
</packages>

1 Ответ

0 голосов
/ 01 июня 2018

Если версия вашего проекта .NET точно равна 4,5 (не 4.5.x), вам необходимо использовать пакет WindowsAzure.ServiceBus версия 4.1.3 .Кроме того, это

Вот пакеты.config:

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="WindowsAzure.ServiceBus" version="4.1.3" targetFramework="net45" />
</packages>

Кроме того, правильное пространство имен для использования:

using Microsoft.ServiceBus.Messaging;

Найдите ниже образецКонсольное приложение .NET 4.5, отправляющее сообщение в очередь служебной шины Azure.Обратите внимание, что это всего лишь пример, и это не готовый к использованию код.Надеюсь, это поможет.

using System;
using System.Threading.Tasks;
using Microsoft.ServiceBus.Messaging;

namespace ServiceBusSample
{
    class Program
    {
        static void Main(string[] args)
        {
            const string ConnectionString = "your service bus connection string";
            const string QueueName = "your service bus queue name";
            string message = "Hello World!";
            string sessionId = Guid.NewGuid().ToString();

            SendMessage(ConnectionString, QueueName, sessionId, message).Wait();

            Console.WriteLine("Press <ENTER> to exit...");
            Console.ReadLine();
        }

        private static async Task SendMessage(string connectionString, string queueName, string sessionId, string message, string correlationId = null)
        {
            try
            {
                if (string.IsNullOrWhiteSpace(connectionString))
                {
                    throw new ArgumentException("Service bus connection string cannot be null, empty or whitespace.");
                }

                if (string.IsNullOrWhiteSpace(queueName))
                {
                    throw new ArgumentException("Service bus queue name cannot be null, empty or whitespace.");
                }

                if (string.IsNullOrWhiteSpace(sessionId))
                {
                    throw new ArgumentException("Session id cannot be null, empty or whitespace.");
                }

                QueueClient queueClient = QueueClient.CreateFromConnectionString(connectionString, queueName);

                BrokeredMessage brokeredMessage = new BrokeredMessage(message);
                brokeredMessage.SessionId = sessionId;

                await queueClient.SendAsync(brokeredMessage);
            }
            catch
            {
                // TODO: Handle exception appropriately (including logging)
                throw;
            }
        }
    }
}
...