2014-12-04 2 views
0

У меня есть приложение Wix Managed Bootstrapper, написанное в WPF.Пустой экран при запуске Wix WPF bootstrapper

После того, как было сделано какое-то изменение, загрузчик больше не работает: когда я запускаю проект WPF без Bootstrapper, он работает нормально (UI показывает как минимум). Но когда я запускаю Bootstrapper, он открывает пустой (черный фон) окно, которое просто сидит там и ничего не делает.

Поврежденное изменение, похоже, перемещает основной вид MainView.xaml в подпапку View. Конечно, даже с этим изменением проект WPF по-прежнему работает нормально, но только Bootstrapper сломан, как уже упоминалось.

Я сделал некоторый поиск и ближе информацией я смог найти это http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/Visual-Styles-in-Wix-BA-td7584971.html где предложения включали в себя:

1) использовать pack://application:,,, т.е. абсолютных путей для всех ресурсов: Я попробовал это, но это не исправить мою проблему

2) добавить дополнительные файлы в качестве полезной нагрузки элементов: Это, кажется, применимы только для не встроенных ресурсов, поэтому он не относится ко мне

3) Добавить Application.ResourceAssembly = typeof(MainWindow).Assembly; в загрузчике: Я не знаю, что это делает и я не знаю, где его добавить, поэтому я не пробовал.

Как исправить эту проблему?

Дополнительная информация: Разрывная изменение: Я переехал мой файл MainView XAML из корневого каталога приложения WPF вложенную папку с именем View. Я переместил несколько файлов XAML ResourceDictionary с /View/ в /View/Dictionaries/. Я использовал абсолютные пути для доступа к этим перемещаемым файлам XAML, что-то вроде:

<ResourceDictionary Source="WindowStyle.xaml" /> 

был изменен на

<ResourceDictionary Source="/View/Dictionaries/WindowStyle.xaml" /> 

Обратите внимание, что абсолютные пути, которые я использовал начали с косыми чертами, но не начать с pack://application:,,,.

Ресурсы для изображений: В случае, если уместно, любые изображения, которые у меня были, были помещены в папку Resources со своими свойствами Build action = Resource и Copy to output directory = Do not copy. Я использовал изображения, подобные этому:

<Image Source="/Resources/logo.png" VerticalAlignment="Center" Width="75" Height="25" /> 

ответ

0

Решение было противоположным предложению 1) в моем вопросе. Другими словами, мне приходилось использовать относительные пути везде в моих XAML и НЕ абсолютных путях. Wix BS должен перемещать вещи, поэтому абсолютные пути не работают, но относительные пути, так как все, что движется, будет перемещаться вместе и все еще находиться в одном и том же относительном местоположении.

+0

Должно быть больше, чем это необходимо. Шон Холл - разработчик WiX, который работал над записью. –

+0

Я должен согласиться, здесь не хватает подробностей, чтобы помочь кому-то еще. Вы делаете [что делает WixBA] (http://stackoverflow.com/a/25122360/628981)? –

+0

У меня есть несколько ресурсов изображений. Но, как я уже упоминал в своем вопросе, проблема была не только в образах, но даже в XAML не было должным образом размещено во время выполнения. Что вы имеете в виду не достаточно подробно? Это управляемый Wix-загрузчик с использованием WPF. Какие еще детали вам нужны? – user145400

1

Application.ResourceAssembly (ManagedBootstrapperApplicationHost - неуправляемое приложение, в котором размещаются .NET и сборка WPF).

Вы бы назвали это как можно скорее, т. Е. В безпараметровом конструкторе вашего BootstrapperApplication, где MainWindow - это тип в DLL, который содержит встроенные ресурсы. Это позволяет использовать ссылки на стиль pack://application:,,,.

public class MyBA : BootstrapperApplication 
{ 
    public MyBA() 
    { 
     if (Application.ResourceAssembly == null) 
     { 
      Application.ResourceAssembly = typeof(MainWindow).Assembly; 
     } 
    } 
} 
+0

+ 1 Спасибо, это имеет смысл сейчас. Я думаю, что это возможное альтернативное решение для того, что я сделал, но не обязательно предпочтительнее (в моем случае относительные пути работают нормально и набирают меньше, чем абсолютные пути, и мне не нужно беспокоиться о настройке ResourceAssembly). – user145400

Смежные вопросы