【问题标题】:Could not load file or assembly > 'System.Windows, Version=2.0.5.0无法加载文件或程序集 > 'System.Windows,版本 = 2.0.5.0
【发布时间】:2011-06-05 22:59:08
【问题描述】:

第一次加载我的 Silverlight 应用程序时,我不断收到此错误:

无法加载文件或程序集 'System.Windows,版本=2.0.5.0, 文化=中性, PublicKeyToken=7cec85d7bea7798e' 或 它的依赖项之一。系统 找不到指定的文件

但是只要刷新页面就可以解决了!

似乎是 Silverlight 的已知错误: http://connect.microsoft.com/VisualStudio/feedback/details/464190/silverlight-compilation-problem-in-team-build-environment

他们建议解决方法,但在我的情况下不起作用。

【问题讨论】:

    标签: c# silverlight-4.0


    【解决方案1】:

    实际上“System.Windows”程序集被复制到输出目录解决了我的问题。只需确保将其复制到您将要执行应用程序的任何位置,而不仅仅是 Debug 文件夹。还有一个没有类似问题的非常好的替代方案:SilverUnit

    【讨论】:

      【解决方案2】:

      检查你是否有类似这样的代码

      Assembly assembly = Assembly.Load(assemblyName);
      

      如果你有它,这意味着它可能正在为其他 .net 框架加载不适当的 assemblyName,例如 System.Windows

      在这种情况下,您可以直接使用引用的库或从正确的 assemblyName 中加载它

      foreach (var assemblyName in Assembly.GetExecutingAssembly().GetReferencedAssemblies()) 
                  {                    
                      if (assemblyName.ToString().Contains("PresentationFramework"))
                      {
                          Assembly assembly = Assembly.Load(assemblyName);
                          Common.AddToLog(assembly.FullName);
                          Type[] allTypes = assembly.GetTypes();
      
                          foreach (Type type in allTypes)
                          {
                              if (type.IsSubclassOf(typeof(DependencyObject)))
                              {
                                  allControlTypes.Add(type);
                              }
                          }
                      }
                  }
      

      【讨论】:

        【解决方案3】:

        Blockquote 实际上'System.Windows'程序集被复制到输出目录解决了我的问题。只需确保将其复制到您将要执行应用的任何位置,而不仅仅是 Debug 文件夹。

        在您的项目集属性的参考文件夹中 复制本地 您的程序集文件。

        注意:如果您的项目使用 .NET 2.0,请使用 .NET Framework v2.0 SP2 来解决此问题

        【讨论】:

          【解决方案4】:

          只需将此 dll System.Windows.Presentation.dll 的引用添加到您的项目中,因为您的项目要求 System.Windows.dll 并且它是一个命名空间包含在 System.Windows.Presentation.dll 中。

          dll 的路径是:

          C:\Windows\Microsoft.NET\assembly\GAC_MSIL\System.Windows.Presentation\v4.0_4.0.0.0__b77a5c561934e089

          我确实遇到过这个问题,将这个添加到我的项目中已经解决了这个问题。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-07-17
            • 2013-03-22
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多