2012-06-23 71 views
9

我在2011年11月SDK中启动并运行了一个项目,最近升级到2012年6月SDK。当我第一次看到这个错误时,我试图明显地去除引用并添加更新的版本,但这并没有帮助。不知何故,似乎仍然要求版本1.0.0.0。我也试图删除引用并添加旧版本,但没有运气。升级到2012年6月之后出现异常SDK

下面是它在我的代码中显示的方式。现在撞击第一Trace.WriteLine报告以下例外:

System.IO.FileLoadException是由用户代码消息未处理=可能 无法加载文件或程序集“Microsoft.WindowsAzure.Diagnostics, 版本= 1.0。 0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或 其依赖项之一。找到的程序集清单定义 与程序集引用不匹配。 (从HRESULT异常: 0x80131040)源= mscorlib程序
文件名= Microsoft.WindowsAzure.Diagnostics,版本= 1.0.0.0, 文化=中性公钥= 31bf3856ad364e35 FusionLog ==== 预绑定状态信息=== LOG :User = NT AUTHORITY \ NETWORK 服务日志:DisplayName = Microsoft.WindowsAzure.Diagnostics, Version = 1.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35 (完全指定)LOG:Appbase = file:/// F :/ SVNProjects/myproject/SitePagesWebRole/LOG:初始 PrivatePath = F:\ SVNProjects \ myproject \ SitePagesWebRole \ bin调用 程序集:(未知)。 === 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。 日志:Post-policy reference:Microsoft.WindowsAzure.Diagnostics, Version = 1.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35 LOG: 试图下载新的URL file:/// C:/Windows/Microsoft.NET /Framework64/v4.0.30319/Temporary ASP.NET Files/root/b117acb8/f2404402/Microsoft.WindowsAzure.Diagnostics.DLL。 LOG:新的URL 文件试图下载:/// C:/Windows/Microsoft.NET/Framework64/v4.0.30319/Temporary ASP.NET 文件/根/ b117acb8/f2404402/Microsoft.WindowsAzure.Diagnostics /微软.WindowsAzure.Diagnostics.DLL。 日志:试图下载新的URL file:/// F:/SVNProjects/myproject/SitePagesWebRole/bin/Microsoft.WindowsAzure.Diagnostics.DLL。 警告:比较汇编名称导致不匹配:次要 版本ERR:未完成汇编设置(hr = 0x80131040)。 探测终止。

堆栈跟踪: 在System.RuntimeTypeHandle.GetTypeByName(字符串名称,布尔throwOnError,布尔IGNORECASE,布尔reflectionOnly, StackCrawlMarkHandle stackMark,布尔loadTypeFromPartialName, ObjectHandleOnStack型) 在System.RuntimeTypeHandle.GetTypeByName(字符串名称,布尔throwOnError ,布尔ignoreCase,布尔reflectionOnly, StackCrawlMark & stackMark,布尔loadTypeFromPartialName) at System.Type.GetType(String typeName) 在System.Diagnostics.TraceUtils。GetRuntimeObject(字符串的className,类型碱基类型,字符串initializeData) 在System.Diagnostics.TypedElement.BaseGetRuntimeObject() 在System.Diagnostics.ListenerElement.GetRuntimeObject() 在System.Diagnostics.ListenerElementsCollection.GetRuntimeObject() 在System.Diagnostics程序。在System.Diagnostics.TraceInternal.WriteLine(String message) at myproject.GameAPI.Login(Int64 fbid,Int64 [] friends)in F:\ SVNProjects \ myproject \ GameLogic \ GameAPI.cs:line 119中的TraceInternal.get_Listeners()
InnerException:

这怎么解决?

回答

14

检查所有角色的web.config/app.config。请确保您更改版本号为任何参照Microsoft.WindowsAzure.Diagnostics组件版本1.7.0.0

+0

就是这样。我不希望在配置文件中包含版本信息,因为您必须添加引用。 –

2

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

<ProductVersion>1.7</ProductVersion> 

,以确保在Azure实例包含正确的基础组件。

您还可以检查Microsoft.WindowsAzure.Diagnostics是否被复制到输出/天蓝色包。

1

上面并没有为我工作(我到处看了看它说1.7),而不是我去通过每个项目,删除并重新添加任何参考开始:

Microsoft.WindowsAzure.* 

当您重新添加它们确保它说1.7版。

相关问题