首次加载我的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
他们建议解决方法,但在我的情况下不起作用。
答案 0 :(得分:7)
实际上'System.Windows'程序集被复制到输出目录解决了我的问题。只需确保将其复制到您将要执行的应用程序,而不仅仅是Debug文件夹。还有一个非常好的替代方案,没有类似的问题:SilverUnit
答案 1 :(得分:1)
只需将此dll System.Windows.Presentation.dll 的引用添加到项目中,因为您的项目要求 System.Windows.dll ,它是一个命名空间包含在System.Windows.Presentation.dll中。
dll的路径是:
<强> C:\的Windows \ Microsoft.NET \组件\ GAC_MSIL \ System.Windows.Presentation \ v4.0_4.0.0.0__b77a5c561934e089 强>
我确实遇到过这个问题,将其添加到我的项目中已经解决了这个问题。
答案 2 :(得分:1)
检查您是否有像这样的代码
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 :(得分:1)
Blockquote实际上'System.Windows'程序集被复制到输出目录解决了我的问题。只需确保将其复制到您将要执行的应用程序,而不仅仅是Debug文件夹。
在项目集属性的参考文件夹中 复制本地: true 您的程序集文件。
注意:如果您的项目使用.NET 2.0使用.NET Framework v2.0 SP2来解决此问题