У меня есть все мои представления в проекте, наследуемые от класса ViewBase, который наследуется от UserControl. В моем XAML я ссылаюсь на это так:
<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"
Работает нормально.
Теперь я переместил ViewBase в другой проект (чтобы я мог ссылаться на него из нескольких проектов), поэтому я ссылаюсь на него как:
<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"
Это прекрасно работает, когда я запускаю из IDE, но когда я запускаю тот же sln из MSBuild, выдает предупреждение:
"H: \ dev \ ExternalCopy \ Code \ UI \ Modules \ Configure \ Forte.UI.Modules.Configure.csproj" (цель по умолчанию)
(10:12) ->
(Цель ValidateXaml) ->
H: \ dev \ ExternalCopy \ Code \ UI \ Modules \ Configure \ Views \ AddNewEmployee \ AddNewEmployeeView.xaml (1,2,1,2): предупреждение: тег 'ViewBase' не существует в пространстве имен XML 'пространство имен clr: Forte.UI.Modules.Common.Views, сборка = Forte.UI.Modules.Common»
.
Тогда не получается с:
"H: \ dev \ ExternalCopy \ Code \ UI \ Modules \ Configure \ Forte.UI.Modules.Configure.csproj" (цель по умолчанию)
(10:12) ->
(Цель ValidateXaml) ->
C: \ Program Files \ MSBuild \ Microsoft \ Silverlight \ v3.0 \ Microsoft.Silverlight.Common.targets (210,9):
ошибка MSB4018: задача «ValidateXaml» неожиданно завершилась неудачей. \ r
C: \ Program Files \ MSBuild \ Microsoft \ Silverlight \ v3.0 \ Microsoft.Silverlight.Common.targets (210,9): er
ror MSB4018: System.NullReferenceException: ссылка на объект не установлена для экземпляра объекта. \ r
C: \ Program Files \ MSBuild \ Microsoft \ Silverlight \ v3.0 \ Microsoft.Silverlight.Common.targets (210,9): er
ror MSB4018: в MS.MarkupCompiler.ValidationPass.ValidateXaml (строковое имя файла, сборка [] сборка
лежит, сборка вызывает ассемблер, журнал TaskLoggingHelper, логическое значениеThThrow)
C: \ Program Files \ MSBuild \ Microsoft \ Silverlight \ v3.0 \ Microsoft.Silverlight.Common.targets (210,9): er
ror MSB4018: в 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: в 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: в Microsoft.Silverlight.Build.Tasks.ValidateXaml.Execute () \ r
C: \ Program Files \ MSBuild \ Microsoft \ Silverlight \ v3.0 \ Microsoft.Silverlight.Common.targets (210,9): er
ror MSB4018: в Microsoft.Build.BuildEngine.TaskEngine.ExecuteInstantiatedTask (EngineProxy engin
eProxy, элемент ItemBucket, TaskExecutionMode howToExecuteTask, задание ITask, логическое значение и TaskResult)
Есть идеи, что может быть причиной такого поведения?
Использование Silverlight 3
Вот урезанная версия файла MSBuild, который не в состоянии собрать sln, который прекрасно собирается в IDE (извините, не удалось получить его для форматирования здесь):
<? Xml version = "1.0" encoding = "utf-8"?>
Конфигурация = отладка
Спасибо за любую помощь!