2016-09-19 8 views
1

Я использую wix для создания нашего установщика. Наша команда пользовательского интерфейса разработала наш собственный почтовый ящик и присутствует в dll. Я хочу заменить системный ящик сообщений своим ящиком сообщений. Когда я пытаюсь использовать наш почтовый ящик и помещаю попытку catch, он говорит: InnerException System.IO.FileNotFoundException: Не удалось загрузить файл или сборку «XXX» или одну из его зависимостей. Система не может найти указанный файл.Wix: Замените System.Message с настраиваемым саморазвитым ящиком сообщений

Я добавил dll в ссылки на загрузчик. Как я могу использовать его? Я думаю, что, поскольку он встроен в exe, это может не быть найдено. Любые указатели?

ответ

0

Вам нужно добавить dll в Messagebox для загрузки BootstrapperApplication. Вы должны быть в состоянии использовать что-то вроде этого, чтобы получить его в комплекте:

<BootstrapperApplicationRef Id="WixExtBATheme"> 
    <Payload Name='CustomMessageBox.dll' Compressed='yes' SourceFile='$(var.OutDir)$(var.Configuration)\CustomMessageBox.dll'/> 
</BootstrapperApplicationRef> 

Что это делает сказать, загрузчик, чтобы включить этот файл как часть необходимых файлов при запуске программы. Когда вы запускаете Bootstrapper Exe, он извлекает все файлы полезной нагрузки в каталог temp, а затем запускает фактический файл setup.exe из этого каталога. Если вы поместите свою DLL в качестве файла полезной нагрузки, она должна присутствовать в том же каталоге, что и файл setup.exe, и, следовательно, в конечном итоге найдет DLL.

+0

+1 Спасибо! с этим мое исключение исчезло, и оно может показать окно сообщений. Но стиль не виден. Этот стиль присутствует в самой dll. Для других просмотров он добавляется как справочник ресурсов, и он отлично работает. Как добавить этот стиль в BA? В настоящее время для представлений она добавляется следующим образом: ... – Ashish

+0

Когда дело доходит до WPF и xaml, я не знаю, что происходит, извините. –