我有一个项目是我们应用程序的核心。我们构建了几个DLL和一个EXE。
然后我们有自定义项目,它们使用预先构建的核心DLL和EXE,并根据需要添加自定义/额外位。这些自定义始终是DLL,始终使用核心EXE。核心DLL / EXE由自定义解决方案引用。
我在调试加载自定义DLL时遇到了一些问题。因为EXE是预构建的,所以我们使用一个项目作为启动项目,它指向EXE和其余DLL的位置。然而,它似乎并没有加载启动项目DLL。
如果已经构建了EXE,我应该如何设置自定义解决方案/项目?
(注意:如果您想知道,自定义DLL提供了从元数据反射加载的组件)
更新:当前的方法是在自定义解决方案的“顶级”项目中进行后期构建事件,该项目将所有核心DLL和EXE复制到bin / Debug目录中。然后将该顶级项目设置为启动项目,并指向bin / Debug中复制的EXE。然后它找到DLL,因为它与EXE位于同一目录中(以及所有其他目录)。
答案 0 :(得分:1)
选择DLL作为启动项目不以任何方式保证它实际上被加载。你正在使用的EXE必须使用Assembly.Load / From()来加载DLL。此时,调试器会进入并激活您设置的断点。
从Debug + Windows + Modules窗口轻松辨别。如果你没有看到你的DLL在该窗口中加载,那么什么都不会发生。您需要找出该EXE的确切配置规则,以便它将加载您要调试的DLL。
答案 1 :(得分:0)
您可以运行.exe,然后将Visual Studio Debugger附加到该进程。确保.dll的.pdb位于执行目录中。