У меня странная проблема, которая вызывает у нас проблемы.
У нас есть простой C # Wpf UserControl. Это индикатор выполнения - ничего особенного - просто граница, которая меняет размер в зависимости от привязок к Value и MaxValue. Он прекрасно работает в 99% случаев, и мы используем его в дюжине мест в нашем коде, включая заставку.
Он всегда отлично работает на заставке - поэтому он всегда загружается и работает в нашем приложении.
Проблема в том, что иногда (и мы не можем предсказать или понять, когда) вызов InitializeComponent () в конструкторе индикатора выполнения выдает исключение System.Exception. Просматривая файл progressbar.g.cs, созданный во время компиляции (папка obj / Debug), я вижу, что выброшено исключение, поскольку файл progressbar.xaml не найден. Я, конечно, не изменил никакого кода в файле g.cs, и я вообще ничего не делал в этом UserControl.
System.Exception: The component 'MyProject.ControlLibrary.ProgressBar' does not have a resource identified by the URI '/MyProject.ControlLibrary;component/progressbar.xaml'.
at System.Windows.Application.LoadComponent(Object component, Uri resourceLocator)
at MyProject.ControlLibrary.ProgressBar.InitializeComponent() in d:\Projectfolder\MyProject.ControlLibrary\ProgressBar.xaml:line 1
at MyProject.ControlLibrary.ProgressBar..ctor() in D:\projectfolder\MyProject.ControlLibrary\ProgressBar.xaml.cs:line 26
at ProjectName.UI.VideoViewer..ctor() in D:\projectfolder\UI\VideoViewer.xaml.cs:line 26
Source: PresentationFramework
Я не понимаю, почему ресурс progressbar.xaml иногда пропадает, особенно учитывая, что он всегда работает нормально хотя бы один раз при запуске приложения.
UserControl содержится в проекте MyProject.ControlLibrary.dll. Кажется, что этот проект настроен правильно, так как он содержит другие пользовательские элементы управления, которые не показывают никаких проблем - кроме одного другого аналогичного UserControl, который имеет идентичные проблемы.
У меня закончились идеи по этому поводу, поэтому любые предложения будут полезны. Я использую VisualStudio 2008 и .net 3.5