构建错误:无法解析参考PresentationCore

Chr*_*emm 2 c# msbuild wpf travis-ci

我有一个托管在 GitHub 上并附加到 Travis 的 WPF C# 应用程序。我这样配置我的 .travis-ci.yml :

language: csharp
solution: FaceDetection/FaceDetection.sln

script:
    - xbuild /p:Configuration=Debug /p:Platform=x86 /p:TargetFrameworkVersion="v4.0" FaceDetection/FaceDetection.sln
Run Code Online (Sandbox Code Playgroud)

但是,当 travis 即将编译该项目时,我收到这些错误:

/usr/lib/mono/4.5/Microsoft.Common.targets:  warning : Reference 'PresentationCore' not resolved
/usr/lib/mono/4.5/Microsoft.Common.targets:  warning : Reference 'PresentationFramework' not resolved
Run Code Online (Sandbox Code Playgroud)

在我的 Windows 机器上的 VS 本地编译项目工作正常。因此,我包含了该项目所需的所有参考资料。

这也发生在其他一些参考文献上:

Views/Converters/BitmapConverter.cs(5,28): error CS0234: The type or namespace name `Imaging' does not exist in the namespace `System.Windows.Media'. Are you missing an assembly reference?
Views/UserControls/FaceDatabaseEntry.xaml.cs(7,22): error CS0234: The type or namespace name `Controls' does not exist in the namespace `System.Windows'. Are you missing an assembly reference?
Views/UserControls/FaceDatabaseEntry.xaml.cs(9,22): error CS0234: The type or namespace name `Documents' does not exist in the namespace `System.Windows'. Are you missing an assembly reference?
Views/UserControls/FaceDatabaseEntry.xaml.cs(12,28): error CS0234: The type or namespace name `Imaging' does not exist in the namespace `System.Windows.Media'. Are you missing an assembly reference?
Views/UserControls/FaceDatabaseEntry.xaml.cs(13,22): error CS0234: The type or namespace name `Navigation' does not exist in the namespace `System.Windows'. Are you missing an assembly reference?
Views/UserControls/FaceDatabaseEntry.xaml.cs(14,22): error CS0234: The type or namespace name `Shapes' does not exist in the namespace `System.Windows'. Are you missing an assembly reference?
ViewModel/AddFaceViewModel.cs(13,38): error CS0012: The type `System.ComponentModel.INotifyPropertyChanged' is defined in an assembly that is not referenced. Consider adding a reference to assembly `System.ObjectModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
Run Code Online (Sandbox Code Playgroud)

在即将编译之前,所需的包已恢复正常:

Installing 'PostSharp.Patterns.Model 4.2.27'.
Installing 'System.Data.SQLite.Linq 1.0.101.0'.
Installing 'PostSharp.Patterns.Common 4.2.27'.
Installing 'ZedGraph 5.1.7'.
Installing 'MahApps.Metro 1.3.0-ALPHA160'.
Installing 'MvvmLight 5.3.0.0'.
Installing 'DirectShowLib 1.0.0'.
Installing 'System.Data.SQLite.Core 1.0.101.0'.
Installing 'CommonServiceLocator 1.3'.
Installing 'System.Data.SQLite.EF6 1.0.101.0'.
Installing 'PostSharp 4.2.27'.
Installing 'System.Data.SQLite 1.0.101.0'.
Installing 'OpenTK 1.1.2349.61993'.
Installing 'EmguCV 3.1.0'.
Installing 'OpenTK.GLControl 1.1.2349.61993'.
Installing 'EntityFramework 6.1.3'.

Successfully installed 'PostSharp.Patterns.Model 4.2.27'.
Successfully installed 'PostSharp.Patterns.Common 4.2.27'.
Successfully installed 'DirectShowLib 1.0.0'.
Successfully installed 'MvvmLight 5.3.0.0'.
Successfully installed 'ZedGraph 5.1.7'.
Successfully installed 'CommonServiceLocator 1.3'.
Successfully installed 'OpenTK 1.1.2349.61993'.
Successfully installed 'System.Data.SQLite.Linq 1.0.101.0'.
Successfully installed 'PostSharp 4.2.27'.
Successfully installed 'System.Data.SQLite 1.0.101.0'.
Successfully installed 'OpenTK.GLControl 1.1.2349.61993'.
Successfully installed 'System.Data.SQLite.EF6 1.0.101.0'.
Successfully installed 'EntityFramework 6.1.3'.
Successfully installed 'MahApps.Metro 1.3.0-ALPHA160'.
Successfully installed 'MvvmLightLibs 5.3.0.0'.
Successfully installed 'System.Data.SQLite.Core 1.0.101.0'.
Successfully installed 'EmguCV 3.1.0'.
Run Code Online (Sandbox Code Playgroud)

mono 和 xbuild 的版本:

$ mono --version

Mono JIT compiler version 4.2.3 (Stable 4.2.3.4/832de4b Wed Mar 16 13:19:08 UTC 2016)

Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
    TLS:           __thread
    SIGSEGV:       altstack
    Notifications: epoll
    Architecture:  amd64
    Disabled:      none
    Misc:          softdebug 
    LLVM:          supported, not enabled.
    GC:            sgen


$ xbuild /version

XBuild Engine Version 12.0
Mono, Version 4.2.3.0
Copyright (C) 2005-2013 Various Mono authors
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 5

基本上,Mono(或在 Windows 以外的任何平台上运行的 .NET)不支持 WPF。

您需要找到基于 Windows 的 CI 服务,例如AppVeyor