如何调试自定义启动应用程序?(How to debug custom bootstrap appli

2019-06-25 10:58发布

我使用的烧包的MSI。 我使用还愿(Visual Studio中)我自己的自定义BA,而不是WiXBA。 我尝试使用调试定制BA Debugger.Launch() 但是,当我开始调试,会出现错误信息。

无符号被加载的任何调用堆栈帧。 无法显示的源代码

我意识到package.exe链接CustomBA DLL其中位于C:\Documents and Settings\user\Local Settings\Temp\{GUID}\{GUID}总是改变。 所以,每当我跑package.exe,总目录被改变。

我认为这是错误发生的原因。

在Visual Studio中,当我开始package.exe与位于绝对路径(CustomBA DLL .../Debug/bin/CustomBA.dll )。 但执行后package.exe,它链接到Local Settings\Temp\{GUID}目录。 所以,当我们开始调试和连接到CustomBA DLL,DLL CustomBA的目录是动态变化的,并No symbols are loaded会出现误差。

  • 为什么package.exe链接DLL它位于C:\Documents and Settings\user\Local Settings\Temp\{GUID}\ ? 我们可以选择的dll静态路径?
  • 如果我们不能选择dll路径静态,我怎么可以使用CustomBA调试功能?

Answer 1:

要调试引导器应用,你会希望你的包.wixproj和BA .csproj的两个(或.vcxproj如果你正在做一个本地的.dll)在相同的解决方案和包项目应该依赖于BA项目,以便重建正常工作。 下面的步骤应该让你步入你的代码。

注意:请确保您没有运行Visual Studio的升高。 如果你有UAC禁用,重新启用它。 如果Visual Studio正在运行升高这些步骤将无法正常工作。

  1. 重建该项目。 这可确保您有里面的更新BA.dll创造了一个包。
  2. 右键单击Solution Explorer中的BA的.csproj并选择Set as StartUp Project 。 广管局的.csproj要大胆。
  3. 右键单击BA的.csproj,并选择Properties
  4. Properties为BA的.csproj选择Debug选项卡。
  5. Debug选项卡,选择单选按钮Start external program
  6. 浏览到您的包构建的路径。

现在,你可以按F5键并开始调试。 请记住,你改变了BA的.csproj任何时候,你还需要确保.wixproj重建的捆绑。 否则,包将与您的旧BA在它启动和调试器会发现新建BA的.pdbs不匹配。

附加题:如果你禁用Just My Code在调试器设置和下载您的WiX的匹配构建的pdbs.zip和sources.zip安装,可以通过实际刻录码步骤,以及你的BA看到的一切是如何工作的一起。



Answer 2:

我跟Rob的建议,在这个岗位,但遗憾的是我不能让它为我工作(的Visual Studio 2015年,维克斯3.10.3,管理使用WixWPF引导器应用)。 无断点击中过。 我注意到调试器附有自己错误的过程中,安装有两个正在运行的进程(即时猜测的BA和包)。 当我改变的过程中断点被击中,但我的管理BA有代码,我要调试的调试器实际上得到连接之前

香港专业教育学院设法找到一个解决方案,应用程序将无法启动,直到调试器附加。 我把这个代码在我的构造函数的代码隐藏文件(在DEBUG块)为我管理的BA是这样的...

public MainWindow()
{
#if DEBUG
    // Do not start until debugger attached
    while(!System.Diagnostics.Debugger.IsAttached)
    {
        System.Threading.Thread.Sleep(1000);
    }
#endif
    InitializeComponent();
    InstallData = new InstallerInfo();
}

现在,当我同捆一起编译我的管理引导器应用(含调试),然后运行它,应用程序将无法启动,直到您连接到管理引导器应用Tools > Attach to Process > Find your exe in the list



Answer 3:

不能从Visual Studio调试模式运行您的自定义BA。

你可以做的是运行生成的exe文件,然后安装Visual Studio中的过程,会让你调试。 (在菜单: Tools > Attach to Process > Find your exe in the list



文章来源: How to debug custom bootstrap application?