Я работаю над этим проектом C # уже несколько месяцев, и у него всегда был собственный класс привязки, чтобы сделать некоторые свойства немного быстрее:
namespace AutoLogic_GT
{
public class BindingEx : Binding
{
public BindingEx()
{
IsAsync = true;
}
}
public class BindingEx2Way : Binding
{
public BindingEx2Way()
{
Mode = BindingMode.TwoWay;
}
}
public class BindingExReadOnly : Binding
{
public BindingExReadOnly()
{
Mode = BindingMode.OneWay;
}
}
}
И я называю это в своем коде XAML, используя:
<UserControl.Resources>
<local:BoolValueConverter x:Key="boolConverter" />
</UserControl.Resources>
<CheckBox Grid.Column="1" Grid.Row="1" Style="{StaticResource BasicCheckBox}" VerticalAlignment="Center" IsChecked="{local:BindingEx Path=DsBuyer.FirstTimeBuyer, TargetNullValue=False, Converter={StaticResource boolConverter}}" />
И код конвертера также прост:
public sealed class BoolValueConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return value.ToBool();
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
return value.ToBool();
}
}
Он всегда работал нормально, и даже на моей сборочной машине он все еще работает нормально, но только вчера мне пришлось заменить жесткий диск и загрузить весь последний исходный код из TFS, и все выглядит хорошо и правильно, весь код идентичен серверу сборки, но на моем сервере разработки я не могу скомпилировать код. Я получаю сообщение об ошибке:
Ошибка Неизвестное свойство «Конвертер» для типа «MS.Internal.Markup.MarkupExtensionParser + UnknownMarkupExtension», обнаруженное при анализе расширения разметки. Строка 39, позиция 114.
Я получаю ту же ошибку для каждого, кто вызывает дополнительное свойство, кроме просто Path.
т.е. -
Ошибка Неизвестное свойство 'FallbackValue' для типа 'MS.Internal.Markup.MarkupExtensionParser + UnknownMarkupExtension', обнаруженное при анализе расширения разметки.
и
Ошибка Неизвестное свойство 'TargetNullValue' для типа 'MS.Internal.Markup.MarkupExtensionParser + UnknownMarkupExtension', обнаруженное при анализе расширения разметки.
Etc ...
Мне, конечно, пришлось переустановить Visual Studio 2017 CE, и я вернулся на ту же версию, на которой была до замены жесткого диска, потому что я всегда обновлял VS, но, похоже, что-то еще могло отсутствовать или отсутствовать устаревшего или, возможно, несовпадающего или устаревшего пакета компилятора NuGet или чего-то еще, потому что в противном случае не имеет смысла, что сам код плох, когда он работал в течение нескольких месяцев, и все еще продолжает работать и нормально компилироваться на машине сборки.
Кто-нибудь знает, что я могу проверить, что может помочь мне в этом? Единственная альтернатива - вернуться через весь код и избавиться от пользовательской привязки (если это даже истинная причина), но на это уйдут дни, потому что в этом проекте тысячи привязок.
Спасибо!