0

我基本上是在尝试通过用相同 dll 的调试版本替换已安装的 dll 来调试我们软件的已安装版本。

我需要做什么来调试我的应用程序的安装版本。

  1. 我需要替换的dll文件存在于GAC中。
  2. 安装版本号与调试版本号不同。
  3. 我很确定(没有检查),安装的版本有一个强名称,不确定调试版本。
4

2 回答 2

1

这里没有真正的问题,但很明显,您可能会遇到问题使其工作:

  • 该应用程序将首先找到 GAC 中的 DLL。因此,您需要注销它并将调试版本复制到与应用程序的 EXE 相同的目录中,以便它始终加载您的替换。在 GAC 中注册调试版本在技术上是可行的,但请参见下一个项目符号。

  • 该应用程序将寻找特定的 [AssemblyVersion],并且不会很高兴在您的替代品中找到另一个。显然,您希望为调试版本提供相同的 [AssemblyVersion],所以这不是问题。<bindingRedirect>如果确实需要,您可以在 app.exe.config 文件中添加一个。

  • 如果应用程序没有完全信任地运行,它可能会检查替换 DLL 的强名称。因此,请务必使用相同的密钥对其进行签名,而不必为此感到头疼。

于 2012-05-16T12:40:10.913 回答
0

您可以调试“调试”版本以及“发布”版本。需要的是“.pdb”文件。“发布”版本的缺点是某些代码可能已被优化掉,从而使调试变得不那么确定。

这是一篇不错的文章,描述了如何调试 GAC 中的程序集:http ://www.elumenotion.com/Blog/Lists/Posts/Post.aspx?ID=23

于 2012-05-16T12:34:45.163 回答