#wpf #visual-studio-2017 #modern-ui #visual-studio-2019
#wpf #visual-studio-2017 #modern-ui #visual-studio-2019
Вопрос:
Я вносил изменения в приложение WPF, которое мы написали несколько лет назад, используя платформу ModernUI, добавляя общий проект, внося необходимые изменения. Однако я обнаружил, что не могу ни отладить приложение, ни собрать его. Когда я попытался отладить приложение, я получил эту ошибку:
System.Windows.Markup.XamlParseException
HResult=0x80131501
Message='Provide value on 'System.Windows.Baml2006.TypeConverterMarkupExtension' threw an exception.' Line number '7' and line position '19'.
Source=PresentationFramework
StackTrace:
at System.Windows.Markup.WpfXamlLoader.Load(XamlReader xamlReader, IXamlObjectWriterFactory writerFactory, Boolean skipJournaledProperties, Object rootObject, XamlObjectWriterSettings settings, Uri baseUri)
at System.Windows.Markup.WpfXamlLoader.LoadBaml(XamlReader xamlReader, Boolean skipJournaledProperties, Object rootObject, XamlAccessLevel accessLevel, Uri baseUri)
at System.Windows.Markup.XamlReader.LoadBaml(Stream stream, ParserContext parserContext, Object parent, Boolean closeStream)
at System.Windows.Application.LoadComponent(Object component, Uri resourceLocator)
at LRAT.MainWindow.InitializeComponent() in D:SrcLRATLabor Relations Action Tracker (LRAT)LRATLRATMainWindow.xaml:line 1
Inner Exception 1:
IOException: Cannot locate resource 'assets/14546169_s-01.ico'.
Я искал по всему проекту. В паре современных окон было два места, в которых этот файл .ico содержал значение свойства Icon. Однако я изменил его так:
<mui:ModernWindow x:Class="LRAT.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mui="http://firstfloorsoftware.com/ModernUI"
xmlns:view="clr-namespace:LRAT.View"
xmlns:uc="clr-namespace:LRAT.UserControls"
Style="{StaticResource BlankWindow}"
Closing="ModernWindow_Closing"
Icon="/Assets/14546169_S-01.ico"
Loaded="ModernWindow_Loaded"
>
Итак, я не знаю, где еще искать, поскольку поиск по всему решению не показал ничего похожего на assets/14546169_s-01.ico, тогда как я изменил 2 файла .xaml на /assets/14546169_s-01.ico .
Если я попытаюсь его собрать, остальное будет еще более странным. Все, что мне говорит, это
Unknown build error, 'An item with the same key has already been added.'
Единственное, что в нем говорится, это то, что проблема заключается в проекте LRAT. Файл не указан.
Мы начали этот проект с VS 2017. Я получаю там ошибки. И я тоже получаю их с VS 2019.
Комментарии:
1. Трудно сделать это хуже, чем вообще не компилировать. Попробуйте просто полностью удалить любую строку Icon =. Это будет искать ico в основном решении для ввода, поскольку это не URL-адрес пакета. Это там? В папке assets? Проверьте свойства, которые вы хотите, чтобы ресурс сборки не копировался. Где другие ссылки на файлы xaml, которые ico — это в общем проекте? Вы получаете эту ошибку при запуске? При запуске загружается только mainwindow?
2. Удаление назначения файла ico из файлов 2 XAML изменило его. Я все еще не могу выполнить отладку (все еще получаю сообщение об ошибке «элемент с тем же ключом уже добавлен»). Но, похоже, я могу его создать. Файл .ico находится в папке Assets основного проекта, а не в общем проекте. При запуске в mainwindow, когда я пытаюсь выполнить отладку, возникает ошибка. Не понимаю, почему вы предлагаете изменить копию .ico на Output; Я думаю, это именно то, что я хотел бы сделать. Однако в настоящее время установлено значение Не копировать.
3. Стержень. Я сказал не копировать.
4. Как я уже сказал, для файла .ico уже установлено значение «Не копировать».