在 .NET 4.5 应用程序上使用 WindowsAzure.Servicebus 包版本 4.1.10 时出现构建错误
Build error while using WindowsAzure.Servicebus package version 4.1.10 on a .NET 4.5 application
我好像无法在项目中使用这个库
严重性代码说明项目文件行抑制状态
错误 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>
如果您的 .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;
}
}
}
}
我好像无法在项目中使用这个库
严重性代码说明项目文件行抑制状态 错误 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>
如果您的 .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;
}
}
}
}