Microsoft.WindowsAzure.ServiceRuntime的NuGet包在哪里?

70
我们之前通过SDK引用了Windows Azure库,我注意到现在有NuGet包可以使用。这显然更好,所以我正在将所有这些引用替换为NuGet包。
但是,我找不到包含RoleEnvironment等类的Microsoft.WindowsAzure.ServiceRuntime.dll的NuGet包。
我们是否应该从SDK安装中引用此dll而不是NuGet包?这似乎非常奇怪。我只是没有看到此程序集的包吗?
我现在已经安装了所有“windowsazureofficial”标记的包(仅是临时的),但它们中没有一个具有正确的引用!
9个回答

27

最新的Windows Azure SDK为1.7版,因此如果您需要更新的Microsoft.WindowsAzure.ServiceRuntime,则需要在您的计算机上手动安装SDK,并将这些引用添加到角色中。


5
好的,我已经做到了。只是他们会将1.6和1.7 SDK的某些部分作为NuGet包包含在内,但并非所有部分,这似乎有点奇怪。 - Allen Rice
26
这不是违背Nuget包的目的吗?Nuget旨在使与外部库集成变得容易 - 为什么我还要安装SDK,而Nuget已经可以管理正确的依赖项了?这需要修复 - 为什么社区需要管理非官方服务运行时 - SliverNinja - MSFT
@SliverNinja,SDK 包含模拟器和其他东西,这些又依赖于像 MS.WA.ServiceRuntime 这样的程序集。没有人需要非官方的服务运行时。 - bzlm
@bzlm - 你假设每个人都使用模拟器,但并非总是如此。我们很少模拟,因为我们已经有了预定义的集成“服务运行时”模式。Nuget使得管理不同版本变得更加简单,因为每个开发人员可能根据更新频率拥有不同的版本。如果“服务运行时”可以像“服务总线”一样进行管理,那将是很棒的。此外,随着项目的老化,它可能不会根据部署周期进行更新。这可能会导致维护问题。 - SliverNinja - MSFT
4
@SliverNinja,我目前正在尝试将一个SDK1.8 .NET4解决方案升级到SDK2.0 .NET4.5,这真是一场地狱般的经历。所以我赞同你的观点,如果所有东西都通过包来管理,那将会好上千倍。我只是想说,由于模拟器与运行时紧密耦合,我可以理解为什么某些程序集在SDK文件夹中,而某些则通过包进行管理。但我认为这对开发人员并不有帮助。在磁盘上添加对SDK文件夹的引用感觉很不对。我还指出,没有人需要非官方的服务运行时。 - bzlm
事情已经改变,现在正确的答案应该是David的答案。https://dev59.com/Tmgu5IYBdhLWcg3winnU#37393352 - KRoy

22

如何添加Microsoft.WindowsAzure.ServiceRuntime

对于仍在奋斗的人,请确保您查看程序集>扩展;) 在过去的三个月中,这已经让我两次失误!


8

我曾经遇到过类似的问题。

选项1)

我在我的Google Drive存储中添加了一个dll库:Microsoft.WindowsAzure.CloudDrive

在这种情况下,您应该下载并创建一个“静态”链接。

选项2)

我找到了一个NuGet包:

Azure SDK 2.2 DLLs

PM> Install-Package AzureSDK2.2DLLs

如果您需要更多信息,请与我联系。


1
选项2像魔法一样奏效!现在应该是正确答案了。 - Catwood
3
选项2不是微软官方的软件包,您应该使用官方二进制文件。 - Dizzle
@Dizzle包非常老旧,已从官方二进制文件中删除,但仍有旧项目需要依赖此包。 - d.danailov

3
您需要安装您想要构建的特定版本的Azure SDK。实际上,您只需要安装其中的某些部分,包括参考库(SDK有多个可单独下载的部分)-这取决于您要查找哪些程序集。
例如,对于2.2或2.3 SDK和Microsoft.WindowsAzure.ServiceRuntime或Microsoft.WindowsAzure.Diagnostics程序集,您需要“WindowsAzureAuthoringTools” MSI安装程序-而不是安装其他参考库的“WindowsAzureLibsForNet-x64” MSI。

2
Microsoft.WindowsAzure.ServiceRuntime目前位于MicrosoftAzureAuthoringTools中Microsoft.WindowsAzure.Diagnostics目前位于MicrosoftAzureLibsForNet中两者均可从此处的Azure SDK for .NET获取: https://azure.microsoft.com/en-us/downloads/archive-net-downloads/(发布时的Azure SDK版本为2.7) - George Helyar

2

1
我刚发现,哇,他们不支持这个真的很令人惊讶。我想我会在我们内部的NuGet服务器上创建一个NuGet包,并使用它,直到他们开始制作一个。 - Allen Rice

2

现在它已经成为NuGet上的常规软件包:

Install-Package Microsoft.WindowsAzure.SDK


7
非官方。 - David S.

1

他们可能不想分发SDK的核心部分,所以您仍然需要安装实际的SDK。我通过NuGet向“windowsazureofficial”NuGet包的所有者发送了消息,并请求反馈。如果有回复,我会更新此信息。

至于升级,首先获取sdk,然后按照这里的升级说明进行操作。引用将自动更新,并在可能时将本地引用转换为NuGet包引用。


7
供他人参考,您可以在路径 Program Files\Microsoft SDKs\Windows Azure\.NET SDK\<sdk_version>\bin\runtimes\base 中找到 Microsoft.WindowsAzure.ServiceRuntime.dll - SliverNinja - MSFT
@SliverNinja-MSFT 有没有可能把这个评论变成一个答案,因为它很容易被忽略,但实际上解决了我的问题? - Derptastic
1
@Derptastic - 根据要求添加以增加可发现性。 - SliverNinja - MSFT

1

您可以在以下路径中找到Microsoft.WindowsAzure.ServiceRuntime.dll

Program Files\Microsoft SDKs\Windows Azure\.NET SDK\<sdk_version>\bin\runtimes\base

1

所有Azure软件包列表: .NET Azure SDK

注意:在下载SDK文件之前,请查看安装步骤以了解安装SDK涉及的过程和依赖关系。对于1.7及更高版本的SDK,请使用以下手动安装程序链接中包含的安装步骤。对于1.6及更早版本,请按照本页面后面列出的安装步骤进行操作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接