C# 当时,我不需要卸载任何旧的SDK或任何东西,也不需要乱搞“平台目标”。只是更改一下就行了。

C# 当时,我不需要卸载任何旧的SDK或任何东西,也不需要乱搞“平台目标”。只是更改一下就行了。,c#,.net,azure,httpmodule,azure-storage,C#,.net,Azure,Httpmodule,Azure Storage,我可能疯了,但这发生在我身上,因为甚至没有安装Windows Azure SDK。我知道,这很愚蠢,但在某些情况下,保持警惕很有用。我也有同样的问题 从您的解决方案文件夹/子文件夹中删除所有文件“msshrtmi.dll”,然后重新生成。我最近遇到过这种情况,并确定至少在我的情况下,此错误是由于引用了比当前SDK版本旧的Microsoft.WindowsAzure.ServiceRuntime而导致的 在我的实例中,我刚刚升级到SDK 2.2,但我的ServiceRuntime引用仍然是2.1,

我可能疯了,但这发生在我身上,因为甚至没有安装Windows Azure SDK。我知道,这很愚蠢,但在某些情况下,保持警惕很有用。

我也有同样的问题


从您的解决方案文件夹/子文件夹中删除所有文件“msshrtmi.dll”,然后重新生成。

我最近遇到过这种情况,并确定至少在我的情况下,此错误是由于引用了比当前SDK版本旧的Microsoft.WindowsAzure.ServiceRuntime而导致的


在我的实例中,我刚刚升级到SDK 2.2,但我的ServiceRuntime引用仍然是2.1,将这些引用更新到2.2解决了问题,而我不必引用msshrtmi.dll。

这为我解决了问题。在VS2013的开发人员命令提示符中运行此命令

gacutil /i "C:\Program Files\Microsoft SDKs\Windows Azure\.NET SDK\v2.0\bin\runtimes\base\x64\msshrtmi.dll"
gacutil /i "C:\Program Files\Microsoft SDKs\Windows Azure\.NET SDK\v2.0\bin\runtimes\base\x86\msshrtmi.dll"
这将在全局程序集缓存中注册运行时文件,以便所有.NET应用程序都可以访问它。

我将“复制本地”属性更改为“False”。这对我很有效

步骤:

  • 转到参考资料
  • 从引用中打开dll的属性
  • 将“Copy Local”属性更改为False

  • 请将答案从你的博客复制粘贴到这里。如果你的博客链接移动或消失,这个答案就没有用了。最近也有同样的问题。。谷歌搜索并找到了这个。。忘了我以前发过。。干得好!解决了我的问题。这最终也解决了我的问题,因为我在卸载/重新安装Azure时浪费了大量时间。谢谢(感谢@KronoS提供选项1中关于死链接的说明。据我所知,建议仍然很好,请记住。)注意,在右键单击项目检查更新之前,请下载最新的SDK!谢谢你,罗布+谢谢,这帮了大忙!这就是我想要的(将v2.0更改为v2.2)。我猜当我安装Azure SDK 2.2时,它没有向GAC注册该文件。这非常有用。在伤了我几个小时的脑筋并最终求助于StackOverflow Search后,节省了数小时。该解决方案对我的VS2012/13和Azure SDK 2.2同样有效。我花了太多时间试图弄明白这一点。这也适用于SxS安装Azure SDK 2.3和2.7(针对每个版本有不同的项目)。
    ---> System.TypeInitializationException: The type initializer for 'Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment' threw an exception. ---> System.IO.FileNotFoundException: Could not load file or assembly 'msshrtmi, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.
       at Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment.InitializeEnvironment()
       at Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment..cctor()
       --- End of inner exception stack trace ---
       at Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment.get_IsAvailable()
    
    <CloudExtensionsDir Condition=" '$(CloudExtensionsDir)' == '' ">
      $(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\Windows Azure Tools\1.7\
    </CloudExtensionsDir>
    
    <CloudExtensionsDir Condition=" '$(CloudExtensionsDir)' == '' ">
      $(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\Windows Azure Tools\1.8\
    </CloudExtensionsDir>
    
    gacutil /i "C:\Program Files\Microsoft SDKs\Windows Azure\.NET SDK\v2.0\bin\runtimes\base\x64\msshrtmi.dll"
    gacutil /i "C:\Program Files\Microsoft SDKs\Windows Azure\.NET SDK\v2.0\bin\runtimes\base\x86\msshrtmi.dll"