构建错误:无法解析引用PresentationCore

时间:2016-06-13 08:00:38

标签: c# wpf msbuild travis-ci

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

language: csharp
solution: FaceDetection/FaceDetection.sln

script:
    - xbuild /p:Configuration=Debug /p:Platform=x86 /p:TargetFrameworkVersion="v4.0" FaceDetection/FaceDetection.sln

但是,当项目即将由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

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

这也适用于更多参考文献:

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'

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

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'.

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

1 个答案:

答案 0 :(得分:4)

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

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