未知的构建错误无法解决对System.Windows的依赖

本文关键字:System 依赖 解决 Windows 构建 错误 未知 | 更新日期: 2023-09-27 18:07:01

我刚刚下载了PoshConsole的源代码,并试图构建解决方案。我最初有两个问题-

  1. system . interactive .dll无法解析。我安装了Blend 4 SDK,这个问题被修复了。

  2. 未知构建错误-无法解析对系统的依赖。Windows

现在,每当我尝试构建项目时,我在解决方案中的两个项目中得到以下错误,并且在一些谷歌搜索后我无法找到解决方案。

无法解析对程序集"系统"的依赖。窗户版本=2.0.5.0,文化=中性,PublicKeyToken=7cec85d7bea7798e'因为它没有被预加载。当使用ReflectionOnly api时,从属程序集必须预先加载或按需加载

未知的构建错误无法解决对System.Windows的依赖

我收到了另一个(非gac,自定义)组件的错误消息。

就我而言,情况如下:

  • 汇编X包含A类
  • 程序集Y包含类B,它继承自A
  • 程序集Z包含B类的数据模板

Y引用X, Z引用Y

错误信息指向Z中数据模板中引用B的行,并指出无法加载X。

解决方案是让Z也引用x。显然,编译器不能自行解决加载所需程序集的传递引用。

该错误通常意味着您在WPF项目中添加了对Silverlight程序集的引用-两者不能共存。

参见:从WPF应用程序引用Silverlight类库时的错误

在您的[projectName]。在Csproj文件中,您可以识别不可解析的依赖项并将其删除,然后再添加它。

    这是我的错误:v4.0.30319'Microsoft.WinFx.targets(268,9):错误MC1000:未知构建错误,'无法解析对程序集'Microsoft.Data.Schema'的依赖,…
  • 在我的。csproj文件中,我用关键字'Microsoft.Data.Schema'确定了参考行
  • 我删除了行,我的项目能够再次构建。

希望对别人有所帮助

我要插话回答这个老问题,以防有人遇到同样的问题。

我最近在处理一个遗留程序时出现了这个错误。解决办法并不明显。

其中一个被引用的NuGet包是为一堆内部库创建的,并存储在内部NuGet存储库中。

应用程序在VS2013上编译得很好,因为所有的NuGet引用都在项目文件中,直接到库中。

当这些引用更改为(不支持HintPath)时,许多这些NuGet包不是根据nuspec创建的。没有lib文件夹。

这些包被重新制作以遵循规范,但是其中一些包中包含了旧的Silverlight库。这些库导致了错误。

<<p> 解决方案/strong>

nuspec之后,lib文件夹创建了子文件夹:net45和sl1.4 . net 4.5和Silverlight4.0。

当包被新包替换时,构建工作良好。无论项目文件版本如何

TL;博士

旧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

除了O. R. Mapper的回答之外,我想添加一些信息,该回答建议添加对编译器错误指示的程序集的引用。

我在一个WPF项目中遇到了同样的问题。考虑到他的回答中给出的X、Y、Z关系,当将类型为X的属性绑定到类型为Y的DataTemplate和类型为Y的DataType时,问题就发生了。所以,这并不是发生在所有被Z引用的程序集上,而是发生在那些只在视图中暴露其特定类型的程序集上。在我的例子中,我将ComboBoxSelectedItem绑定到x中声明的enum属性。

你可以将这些类型重构为对象,如果你真的想保留引用的话,问题就解决了,特别是如果你使用MVVM。此外,当你正确地将Model类型包装成ViewModel类型时,问题就会自行消失,因为这会生成显式代码,帮助Visual Studio找出所需的程序集。

相关文章: