gpt4 book ai didi

c# - 调试 "plug-in"应用程序的无痛方式?

转载 作者:行者123 更新时间:2023-11-30 15:30:49 25 4
gpt4 key购买 nike

我即将开始开发基于“插件”架构的桌面应用程序 (WPF),并打算使用 MEF(及其 DirectoryCatalog)来发现和加载插件程序集。我们将开发许多插件,因此将它们保留在单独的 VS 解决方案中而不是膨胀“核心”应用程序解决方案似乎是明智的,但我只在单一的独立解决方案上工作过,我怀疑这将使调试变得困难有点棘手。如果有区别,我正在使用 VS2013。

我假设在“核心”应用程序调用该插件中的方法的情况下,我仍然能够进入该插件?而且我猜一旦进入那里,我就可以在那些已经“访问过”的源代码文件中设置断点?但是,如果我想将断点添加到另一个源代码文件 - 单步执行时尚未访问过的源代码文件怎么办?我怎样才能打开那个文件?在单个解决方案中,我可以通过解决方案资源管理器打开它,但当它位于单独的程序集中时(我猜)不能。

我试图先发制人,我可能会遇到这种多解决方案的任何问题,并且想知道 VS 是否有任何聪明的功能来简化其中的一些东西。拥有单独的解决方案还意味着首先编译我想要测试的插件解决方案,然后编译并运行“核心”应用程序解决方案。虽然这只是几次额外的鼠标点击,但是否有(再次)任何 VS 功能可以在这里提供帮助?

最佳答案

这是一个常见的场景,一点也不棘手。

在插件的项目属性中,转到 Debug -> Start Action 并将 Start external program 设置为核心应用程序的可执行文件。

这样,您只需编译一次核心应用程序(可能使用只构建一切的构建脚本),调试插件将启动核心应用程序并附加调试器您可以调试插件(只要您的核心应用程序加载了插件程序集)。

另请记住,您可以将调试器与正在运行的应用程序分离,切换到打开另一个解决方案的 Visual Studio 的另一个实例,然后再次附加到正在运行的应用程序。如果你,这会派上用场。调试您的插件并希望在您的核心应用程序中设置或使用现有断点。

只要 Visual Studio 能够找到调试符号(*.pdb 文件),逐步执行例如代码您的核心应用程序在调试您的插件时也没有问题。

关于c# - 调试 "plug-in"应用程序的无痛方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21606205/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com