什么原因导致MsBuild出现“无法解析依赖项错误”?

31 浏览
0 Comments

什么原因导致MsBuild出现“无法解析依赖项错误”?

我正在尝试为持续集成设置一些构建脚本,但我发现了一些奇怪的问题。

我的解决方案在使用Visual Studio 2010编译时没有问题,但是当我使用MSBuild从命令行构建完全相同的东西时却出现错误。

下面是我从命令行构建中得到的错误信息。

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Microsoft.WinFX.targets(269,9):

error MC1000: 未知的构建错误,

'无法解析对程序集'Microsoft.Windows.Design.Extensibility, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'的依赖项,因为它尚未预加载。在使用ReflectionOnly APIs时,依赖程序集必须预加载或通过ReflectionOnlyAssemblyResolve事件按需加载。'

[C:\Dev\Market Watch\src\Console\MarketWatch.Console\Rbnz.MarketWatch.Console.csproj]

我已经检查了所有源代码,没有找到任何对Microsoft.Windows.Design.Extensibility的引用。我还检查了这个项目引用的所有二进制文件,包括一些DevExpress库。

我的MSBuild命令行如下:

MsBuild.exe c:\Dev\MarketWatch\src\Capture\Capture.sln

/t:rebuild

/verbosity:quiet

/filelogger

/fileloggerparameters:LogFile=c:\Dev\MarketWatch\build\Logs\capture.msbuild.log

是否有缺少的内容,我应该在MsBuild命令行中包含,以使命令行构建与Visual Studio运行的构建相同?

更新14/4:

- 尽管我是从Visual Studio命令提示符中运行构建脚本,但仍然出现这些错误。

0
0 Comments

最近我遇到了相同的问题。

这个错误是在我们的VSTS-BuildAgent上抛出的。

在遵循Devexpress网站上的所有建议(包括项目升级)之后,错误依然存在。

说实话,我们正在将WinForms和WPF混合使用,以实现从WinForms到WPF的平滑迁移,所以基本上不是每天都会遇到的问题。

不管怎样,我通过将所有需要的引用再次添加到WPF项目中来解决了这个问题,即使它们在起始项目(WinForms)中已经被引用了。

经过这个步骤,BuildAgent成功完成了构建。

0
0 Comments

出现"Cannot resolve dependency error"的原因是在编译时无法解析依赖项。解决方法是在调用msbuild之前初始化路径以查找程序集、工具等。可以在调用msbuild之前调用vcvarsall.bat,也可以在VS2010命令行控制台中调用脚本。这两种方法都能达到同样的效果。

另外,从问题的编辑内容中可以看出,可能是在错误地使用反射。解决方案可以在这里找到。

另一方面,问题并不是在运行时出现的,而是在编译时出现的。

0
0 Comments

问题的出现原因是由于引用了DevExpress、Mindscape、Microsoft.Expression.Blend.SDK.WPF和Infragistics这些带有.design后缀的程序集导致的。解决方法是删除所有引用这些带.design后缀的程序集。但是需要注意的是,这样做会导致无法使用源代码的设计功能。如果需要使用设计功能,可以通过在编译机器上安装Visual Studio SDK来解决该问题。

希望这篇文章对您有帮助。

0