9

我有一个项目使用 2011 年 11 月的 SDK 启动并运行,最近升级到 2012 年 6 月的 SDK。当我第一次看到错误时,我尝试了明显的 - 删除引用并添加更高版本,但这没有帮助。不知何故,似乎仍在请求版本 1.0.0.0。我还尝试删除引用并重新添加旧版本,但没有运气。

这是它在我的代码中的显示方式。现在命中的第一个 Trace.WriteLine 报告以下异常:

System.IO.FileLoadException 未被用户代码处理 Message=Could not load file or assembly 'Microsoft.WindowsAzure.Diagnostics, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' 或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(来自 HRESULT 的异常:0x80131040)来源=mscorlib
FileName=Microsoft.WindowsAzure.Diagnostics, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 FusionLog==== 预绑定状态信息=== LOG: User = NT AUTHORITY\NETWORK SERVICE LOG: DisplayName = Microsoft.WindowsAzure .Diagnostics,版本=1.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35(完全指定) LOG:Appbase = file:///F:/SVNProjects/myproject/SitePagesWebRole/ LOG:Initial PrivatePath = F:\SVNProjects\myproject \SitePagesWebRole\bin 调用程序集:(未知)。=== LOG:此绑定在默认加载上下文中开始。LOG:使用应用程序配置文件:F:\SVNProjects\myproject\SitePagesWebRole\web.config LOG:使用主机配置文件:C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet.config LOG:使用机器配置文件来自 C:\Windows\Microsoft。NET\Framework64\v4.0.30319\config\machine.config。日志:策略后参考:Microsoft.WindowsAzure.Diagnostics,版本=1.0.0.0,文化=中性,PublicKeyToken=31bf3856ad364e35 日志:尝试下载新 URL 文件:///C:/Windows/Microsoft.NET/Framework64/v4 .0.30319/临时 ASP.NET 文件/root/b117acb8/f2404402/Microsoft.WindowsAzure.Diagnostics.DLL。日志:尝试下载新 URL 文件:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/Temporary ASP.NET Files/root/b117acb8/f2404402/Microsoft.WindowsAzure.Diagnostics/Microsoft.WindowsAzure.Diagnostics .DLL。日志:正在尝试下载新的 URL 文件:///F:/SVNProjects/myproject/SitePagesWebRole/bin/Microsoft.WindowsAzure.Diagnostics.DLL。警告:比较程序集名称导致不匹配:次要版本错误:未能完成程序集设置 (hr = 0x80131040)。探测终止。

StackTrace:在 System.RuntimeTypeHandle.GetTypeByName(字符串名称,布尔 throwOnError,布尔 ignoreCase,布尔仅反射,StackCrawlMarkHandle stackMark,布尔 loadTypeFromPartialName,ObjectHandleOnStack 类型)在 System.RuntimeTypeHandle.GetTypeByName(字符串名称,布尔 throwOnError,布尔 ignoreCase,布尔反射,StackCrawlMark& stackMark, Boolean loadTypeFromPartialName) 在 System.Diagnostics.TraceUtils.GetRuntimeObject(String className, Type baseType, String initializeData) 在 System.Diagnostics.TypedElement.BaseGetRuntimeObject() 在 System.Diagnostics.GetType(String typeName) 在 System.Diagnostics.ListenerElement。 System.Diagnostics.ListenerElementsCollection 中的 GetRuntimeObject()。System.Diagnostics.TraceInternal 中的 GetRuntimeObject()。get_Listeners() at System.Diagnostics.TraceInternal.WriteLine(String message) at myproject.GameAPI.Login(Int64 fbid, Int64[] friends) in F:\SVNProjects\myproject\GameLogic\GameAPI.cs:line 119
内部异常:

如何解决?

4

3 回答 3

14

检查 web.config / app.config 以了解您的所有角色。确保将任何对 Microsoft.WindowsAzure.Diagnostics 程序集的引用的版本号更改为版本1.7.0.0

于 2012-06-23T20:16:45.140 回答
2

您的 web/worker 角色项目中的所有 azure 程序集引用都应指向 1.7.0.0 版本。您的 ccproj 文件应包含

<ProductVersion>1.7</ProductVersion>

以确保 Azure 实例包含正确的基础程序集。

您还可以检查是否Microsoft.WindowsAzure.Diagnostics已复制到 output/azure 包。

于 2012-06-23T16:39:40.010 回答
1

以上对我不起作用(我在任何地方都说 1.7),相反,我浏览了每个项目,删除并重新添加了任何开头的引用:

Microsoft.WindowsAzure.*

当您重新添加它们时,请确保它显示版本 1.7。

于 2012-09-29T19:02:50.727 回答