I've been searching and searching but didn't found a real solution, on my machine Visual Studio builds without a compile error but on the build server i can't seem to get it work when introducing an own abstraction layer over the xamRibbon. Perhaps this forum isn't the right forum to post it, but i'm clueless why it's building without any compile errors nor runtime errors on Visual Studio and msbuild can't figure it out how to build it. I'm not hidding the ApplicationMenu in U4ARibbon, it's an empty class!
The error i get from TFSBuild c.q. MSBuild is:
C:\Builds\Sources\Ceedrie\Hoofdstroom\User Interface\Source\Modules\Infrastructure\Views\MenuView.xaml(28,18): error MC3015: The attached property 'XamRibbon.ApplicationMenu' is not defined on 'U4ARibbon' or one of its base classes.
The errorlog:
Using "MarkupCompilePass2" task from assembly "PresentationBuildTasks, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35".
Task "MarkupCompilePass2"
Microsoft (R) Build Task 'MarkupCompilePass2' Version '3.0.6920.1427 built by: SP'.
Copyright (C) Microsoft Corporation 2005. All rights reserved.
Current project directory is 'C:\Builds\Sources\Ceedrie\Hoofdstroom\User Interface\Source\Modules\Infrastructure\'.
Preparing for the markup compilation...
OutputType is 'library'.
Input: Local reference markup Page file: 'C:\Builds\Sources\Ceedrie\Hoofdstroom\User Interface\Source\Modules\Infrastructure\Views\LoginView.xaml'.
Input: Local reference markup Page file: 'C:\Builds\Sources\Ceedrie\Hoofdstroom\User Interface\Source\Modules\Infrastructure\Views\MenuView.xaml'.
Started the markup compilation.
Input file 'C:\Builds\Sources\Ceedrie\Hoofdstroom\User Interface\Source\Modules\Infrastructure\Views\LoginView.xaml' is resolved to new relative path 'Views\LoginView.xaml' at directory 'C:\Builds\Sources\Ceedrie\Hoofdstroom\User Interface\Source\Modules\Infrastructure\'.
Input file 'C:\Builds\Sources\Ceedrie\Hoofdstroom\User Interface\Source\Modules\Infrastructure\Views\MenuView.xaml' is resolved to new relative path 'Views\MenuView.xaml' at directory 'C:\Builds\Sources\Ceedrie\Hoofdstroom\User Interface\Source\Modules\Infrastructure\'.
Generated BAML file: 'C:\Builds\Sources\Ceedrie\Hoofdstroom\User Interface\Source\Modules\Infrastructure\obj\Release\Views\LoginView.baml'.
Markup compilation is done.
Done executing task "MarkupCompilePass2" -- FAILED.
Done building target "MarkupCompilePass2" in project "Infrastructure.csproj" -- FAILED.
The xaml namespaces:
xmlns:u4acontrols=http://www.unit4agresso.nl/Framework.Frontend.UIxmlns:igRibbon=http://infragistics.com/Ribbon
The xaml in which msbuild gives an error:
<u4acontrols:U4ARibbon Name="xamRibbon1" Height="150" MinHeight="150" VerticalAlignment="Top" > <igRibbon:XamRibbon.ApplicationMenu> </igRibbon:XamRibbon.ApplicationMenu></u4acontrols:U4ARibbon>
The xaml which goes good in vs and msbuild:
<igRibbon:XamRibbon Name="xamRibbon1" Height="150" MinHeight="150" VerticalAlignment="Top" > <igRibbon:XamRibbon.ApplicationMenu> </igRibbon:XamRibbon.ApplicationMenu></igRibbon:XamRibbon>
The abstraction class:
// at the moment empty!
public class U4ARibbon : XamRibbon{}
I haven't seen this error or any report of it so I'm not sure why MSBuild is having an issue but does it work if instead of:
You use:
<u4acontrols:U4ARibbon Name="xamRibbon1" Height="150" MinHeight="150" VerticalAlignment="Top" > <u4acontrols:U4ARibbon.ApplicationMenu> </u4acontrols:U4ARibbon.ApplicationMenu></u4acontrols:U4ARibbon>
It seems to be working.
Anyway there are more people with the same problem, on other controls:one of them: http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/00907c94-c6b2-4bf1-98f9-113c5c4392d8
Just strange that Visual Studio builds and MSBuild doesn't, both are csc.exe