I have all my views in a project inheriting from a ViewBase class that inherits from UserControl. In my XAML I reference it thus:
<f:ViewBase x:Class="Forte.UI.Modules.Configure.Views.AddNewEmployeeView"
xmlns:f="clr-namespace:Forte.UI.Modules.Configure.Views"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
It works fine.
Now I have moved the ViewBase to another project (so I can refernce it from multiple projects) so I reference it like:
<f:ViewBase x:Class="Forte.UI.Modules.Configure.Views.AddNewEmployeeView"
xmlns:f="clr-namespace:Forte.UI.Modules.Common.Views;assembly=Forte.UI.Modules.Common"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
This works fine when I run from the IDE but when I run the same sln from MSBuild it gives a warning:
"H:\dev\ExternalCopy\Code\UI\Modules\Configure\Forte.UI.Modules.Configure.csproj" (default target)
(10:12) -
(ValidateXaml target) -
H:\dev\ExternalCopy\Code\UI\Modules\Configure\Views\AddNewEmployee\AddNewEmployeeView.xaml(1,2,1,2): warning : The tag 'ViewBase' does not exist in XML namespace 'clr-namespace:Forte.UI.Modules.Common.Views;assembly=Forte.UI.Modules.Common'.
Then fails with:
"H:\dev\ExternalCopy\Code\UI\Modules\Configure\Forte.UI.Modules.Configure.csproj" (default target)
(10:12) -
(ValidateXaml target) -
C:\Program Files\MSBuild\Microsoft\Silverlight\v3.0\Microsoft.Silverlight.Common.targets(210,9):
error MSB4018: The "ValidateXaml" task failed unexpectedly.\r
C:\Program Files\MSBuild\Microsoft\Silverlight\v3.0\Microsoft.Silverlight.Common.targets(210,9): er
ror MSB4018: System.NullReferenceException: Object reference not set to an instance of an object.\r
C:\Program Files\MSBuild\Microsoft\Silverlight\v3.0\Microsoft.Silverlight.Common.targets(210,9): er
ror MSB4018: at MS.MarkupCompiler.ValidationPass.ValidateXaml(String fileName, Assembly[] assemb
lies, Assembly callingAssembly, TaskLoggingHelper log, Boolean shouldThrow)\r
C:\Program Files\MSBuild\Microsoft\Silverlight\v3.0\Microsoft.Silverlight.Common.targets(210,9): er
ror MSB4018: at Microsoft.Silverlight.Build.Tasks.ValidateXaml.XamlValidator.Execute()\r
C:\Program Files\MSBuild\Microsoft\Silverlight\v3.0\Microsoft.Silverlight.Common.targets(210,9): er
ror MSB4018: at Microsoft.Silverlight.Build.Tasks.ValidateXaml.XamlValidator.Execute()\r
C:\Program Files\MSBuild\Microsoft\Silverlight\v3.0\Microsoft.Silverlight.Common.targets(210,9): er
ror MSB4018: at Microsoft.Silverlight.Build.Tasks.ValidateXaml.Execute()\r
C:\Program Files\MSBuild\Microsoft\Silverlight\v3.0\Microsoft.Silverlight.Common.targets(210,9): er
ror MSB4018: at Microsoft.Build.BuildEngine.TaskEngine.ExecuteInstantiatedTask(EngineProxy engin
eProxy, ItemBucket bucket, TaskExecutionMode howToExecuteTask, ITask task, Boolean& taskResult)
Any ideas what might be causing this behaviour?
Using Silverlight 3
Here is a cut down version of the MSBuild file that fails to build the sln that builds fine in the IDE (sorry couldn't get it to format here):
<?xml version="1.0" encoding="utf-8" ?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Compile">
<ItemGroup>
<ProjectToBuild Include="..\UI\Forte.UI.sln">
<Properties>Configuration=Debug</Properties>
</ProjectToBuild>
</ItemGroup>
<Target Name="Compile">
<MSBuild Projects="@(ProjectToBuild)"></MSBuild>
</Target>
</Project>
Thanks for any help!