Кажется, я не могу использовать эту библиотеку в проекте
Код серьезности Описание Состояние подавления строки файла проекта Ошибка CS0246 Не удалось найти тип или имя пространства имен WindowsAzure (вам не хватает директивы using или ссылки на сборку?) ClassLibrary2 \ Visual Studio 2017 \ Projects \ ClassLibrary2 \ ClassLibrary2 \ EntityListener.cs 24 Active
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>
В нем нет служебной шины.
какую версию пакета вы установили? Вы уверены, что пакет установлен правильно? Можете ли вы опубликовать свой реальный код?
Я скачал версию, совместимую с asp.net 4.5, так как этого требует проект. Так что не то же самое в вашем источнике @PeterBons
Получаете ли вы какие-либо предупреждения при сборке?
Я получаю сообщение об ошибке, что не может найти CS0246
Хорошо, но никаких предупреждений? Странный. К какому типу вы пытаетесь получить доступ из пространства имен?
Я просто пытаюсь записать в очередь Azure, но, поскольку я использую .NET 4.5, у меня, похоже, есть некоторые проблемы. Я должен использовать этот docs.microsoft.com/da-dk/dotnet/api/…, чтобы установить соединение с очередью, но поскольку я использую 4.5, я не могу установить Micosoft.azure.servicebus, у которого есть .netStandard 2.0
Мне нужно это использовать, но не могу ... в этом вся проблема ...





Если ваш проект .NET версии ровно 4,5 (а не 4.5.x), вам нужно будет вернуться к пакету WindowsAzure.ServiceBus версия 4.1.3. Более того, это
Вот файл packages.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;
}
}
}
}
Вы уверены, что это правильное пространство имен? Думаю нужен
using Microsoft.Azure.ServiceBus;(источник)