我正在使用wix来创建我们的安装程序。我们的UI团队开发了我们自己的消息框,并在dll中出现。我想用我的消息框替换系统消息框。 当我尝试使用我们的消息框并尝试捕获时,它说: InnerException System.IO.FileNotFoundException:无法加载文件或程序集“XXX”或其依赖项之一。系统找不到指定的文件。
我在bootstrapper的引用中添加了dll。我怎么用呢?我认为,因为它嵌入在exe中可能找不到。有什么指针吗?
答案 0 :(得分:0)
您需要将messagebox dll添加到BootstrapperApplication的Payload中。你应该能够使用这样的东西来包含它:
<BootstrapperApplicationRef Id="WixExtBATheme">
<Payload Name='CustomMessageBox.dll' Compressed='yes' SourceFile='$(var.OutDir)$(var.Configuration)\CustomMessageBox.dll'/>
</BootstrapperApplicationRef>
这样做是告诉引导程序在程序运行时将此文件包含在所需文件中。当您运行Bootstrapper Exe时,它会将所有有效负载文件提取到临时目录中,然后从该目录运行实际的setup.exe。如果您将DLL作为有效负载文件,它应该与setup.exe存在于同一目录中,因此最终会找到DLL。