2016-09-19 8 views
1

私はインストーラを作成するためにwixを使用しています。私たちのUIチームは独自のメッセージボックスを開発し、dllに存在します。システムメッセージボックスをメッセージボックスに置き換えたい メッセージボックスを使用してtry catchを実行しようとすると、 InnerException System.IO.FileNotFoundException:ファイルまたはアセンブリ 'XXX'またはその依存関係の1つをロードできませんでした。システムは、指定されたファイルを見つけることができません。Wix:System.Messageをカスタム自己開発メッセージボックスに置き換えます。

私はブートストラップのリファレンスにdllを追加しました。どうすれば使えますか?私はexeに埋め込まれているので、これは見つからないかもしれないと思います。すべてのポインタ?

答えて

0

BootstrapperApplicationのペイロードにメッセージボックスのdllを追加する必要があります。あなたはそれが含まれ得るために、このようなものを使用することができるはずです。

<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自体にあります。他のビューの場合、それはResource dictonaryとして追加され、正常に動作します。このスタイルをBAにどのように追加できますか? < ";コンポーネント/ MyStyles.xaml/MyApp.WPFStyles"/ResourceDictionaryのソース=> :それはこのように追加されたビューの現在 。 MergedDictionaries> ... – Ashish

+0

WPFとxamlに関しては何が起こっているのか分かりませんが、ごめんなさい。 –

関連する問題