1

我有一个项目,它是我们应用程序的核心。我们构建了几个 DLL 和一个 EXE。

然后,我们有自定义项目,这些项目使用预构建的核心 DLL 和 EXE,并根据需要添加自定义/额外位。这些定制始终是 DLL,始终使用核心 EXE。自定义解决方案引用了核心 DLL/EXE。

我在调试加载自定义 DLL 时遇到了一些问题。因为 EXE 是预先构建的,所以我们使用其中一个项目作为启动项目,它指向 EXE 和其余 DLL 的位置。但是,它似乎并没有加载启动项目 DLL。

当 EXE 已经构建时,我应该如何设置我的自定义解决方案/项目?

(注意:自定义 DLL 提供了从元数据反射加载的组件,如果您想知道的话)

更新:当前的方法是在自定义解决方案的“顶级”项目中进行构建后事件,将所有核心 DLL 和 EXE 复制到 bin/Debug 目录中。然后将该顶级项目设置为启动项目并指向bin/Debug中复制的EXE。然后它会找到 DLL,因为它与 EXE(以及所有其他文件)位于同一目录中。

4

2 回答 2

1

选择一个 DLL 作为启动项目并不能保证它确实被加载。您正在使用的那个 EXE 必须使用 Assembly.Load/From() 来加载 DLL。此时调试器会介入并激活您设置的断点。

从 Debug + Windows + Modules 窗口很容易分辨。如果您没有看到在该窗口中加载了您的 DLL,那么什么都不会发生。您需要找出该 EXE 的确切配置规则,以便它加载您要调试的 DLL。

于 2010-09-17T14:36:31.713 回答
0

您可以运行 .exe,然后将 Visual Studio 调试器附加到该进程。确保 .dll 的 .pdb 位于执行目录中。

于 2010-09-17T13:20:44.963 回答