我刚刚下载了PoshConsole的源代码,并试图构建解决方案。我最初有两个问题 -
无法解析System.Interactivity.dll。我安装了Blend 4 SDK,问题已修复。
未知的构建错误 - 无法解析对System.Windows的依赖
现在,每当我尝试构建项目时,我在解决方案中的两个项目中都会出现以下错误,并且在谷歌搜索后无法找到解决方案。
无法解析对程序集'System.Windows的依赖, Version = 2.0.5.0,Culture = neutral,PublicKeyToken = 7cec85d7bea7798e' 因为它还没有预装。使用ReflectionOnly API时, 依赖程序集必须预先加载或按需加载 ReflectionOnlyAssemblyResolve事件。
答案 0 :(得分:45)
我收到了另一个(非GAC,自定义)程序集的错误消息。
就我而言,情况如下:
Y引用X,Z引用Y。
错误消息指向Z中数据模板中引用B的行,并指出无法加载X.
解决方案是让Z也引用X. 显然,编译器无法解析该传递引用以自行加载所需的程序集。
答案 1 :(得分:18)
该错误通常意味着您在WPF项目中添加了对Silverlight程序集的引用 - 两者无法共存。
请参阅:Errors when referencing Silverlight class library from WPF application
答案 2 :(得分:1)
在[projectName] .csproj文件中,您可以识别不可解析的依赖项并将其删除,然后再将其添加。
希望它会帮助别人
答案 3 :(得分:0)
除了O. R. Mapper的答案之外,我想添加一些信息,建议添加对编译器错误指示的程序集的引用。
我在处理WPF项目时遇到了同样的问题。考虑到答案中提出的X,Y,Z关系,在我的例子中,当我将属性从X绑定到Z中的数据模板使用的View时,就会出现这种情况。所以,并非所有情况都会发生这种情况。由Z引用的程序集,但仅限于在Z视图中公开其类型的程序集。在我的例子中,我将ComboBox的SelectedItem
绑定到Z中声明的enum
。
您可以将这些类型重构为对象,如果您确实希望保留引用,问题就会消失,特别是如果您使用MVVM。此外,在ViewModel中,我公开了包装已使用对象属性的属性,因为它们可能不是View ready。
希望这有帮助。
答案 4 :(得分:0)
如果有人遇到同样的问题,我将回答这个老问题。
我最近正在处理旧版程序,但出现此错误。解决方案并不容易。
问题
所引用的一个NuGet软件包是为一堆内部库创建的,并存储在内部NuGet存储库中。
由于Project文件中包含所有NuGet引用,因此直接将这些应用程序在VS2013上编译良好。
将这些引用更改为(不支持HintPath)时,其中许多NuGet软件包不是根据nuspec创建的。没有 lib 文件夹。
对软件包进行了重新制作,使其符合规范,但是其中一些软件包包含旧的Silverlight库。这些库导致了错误。
解决方案
在 nuspec 之后, lib 文件夹创建了以下子文件夹:net45和sl4。 .NET4.5和Silverlight4.0。
当用新的软件包替换软件包时,构建工作正常。不论项目文件的版本如何。
TL; DR
旧的nupkg结构:
Package.1.0.0.nupkg
- Library.Net40.dll
- Library.Sl4.dll
新的nupkg结构:
Package.1.0.1.nupkg
- lib
- net45
- Library.dll
- sl4.0
- Library.dll