我们之前通过SDK引用了我们的Windows Azure库,我注意到他们现在已经为他们提供了NuGet包.这显然更好,所以我正在交换NuGet包的所有引用.
但是,我找不到包含RoleEnvironment等类的Microsoft.WindowsAzure.ServiceRuntime.dll的NuGet包.
我们应该从SDK安装中引用这个dll而不是nuget包吗?这似乎非常奇怪.我只是没有看到这个组件的包装?
我现在已经安装了所有"windowsazureofficial"标记的软件包(只是暂时的),但它们似乎都没有正确的引用!
升级我们的项目以使用Azure SDK 2.5后,我在部署到Azure(Web角色)时遇到以下运行时异常:
无法加载文件或程序集'Microsoft.WindowsAzure.ServiceRuntime,Version = 2.4.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其依赖项之一.该系统找不到指定的文件.
NuGet引用的其中一个软件包仍在引用ServiceRuntime 2.4.0.0.根据我的理解,我需要做的就是bindingRedirect在我们的创建中web.config:
<dependentAssembly>
<assemblyIdentity name="Microsoft.WindowsAzure.ServiceRuntime" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-2.5.0.0" newVersion="2.5.0.0"/>
</dependentAssembly>
Run Code Online (Sandbox Code Playgroud)
不幸的是,这不起作用.例外仍然存在.有人可以提供指导吗?
我们目前正在将我们的应用程序的一些实例移动到Azure,但仍将保持与非Azure托管的现有实例的向后兼容性.
是否有一种很好的方法来检测环境而无需在非Azure生产服务器上安装SDK?
我尝试过使用:
if (RoleEnvironment.IsAvailable)
Run Code Online (Sandbox Code Playgroud)
来自Microsoft.WindowsAzure.ServiceRuntime,它在本地和Azure中都可以很好地工作.但是,我需要将Microsoft.WindowsAzure.ServiceRuntime.dll设置为CopyLocal,即使这样我也得到:
无法加载文件或程序集'msshrtmi,Version = 2.2.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其依赖项之一
似乎没有NuGet包,我不想手动复制msshrtmi dll.
也许有一种方法可以在不依赖Microsoft.WindowsAzure.ServiceRuntime的情况下进行检测?
我正在寻找一种方法来使用RoleEnviroment类或类似的东西从C#代码获取云服务的部署名称,以便在myservice.cloudapp.net我得到的情况下部署我的服务myservice.
我怎样才能做到这一点?