调试已安装的版本-C#

调试已安装的版本-C#,c#,debugging,C#,Debugging,我基本上是通过用同一dll的调试版本替换已安装的dll来调试已安装版本的软件 我需要做什么,调试我的应用程序的安装版本 我需要替换的dll文件存在于GAC中 安装的版本号与调试版本号不同 我很确定(没有检查),安装的版本有一个强名称,不确定调试版本 您可以调试“调试”和“发布”版本。需要的是“.pdb”文件。“Release”版本的缺点是一些代码可能已经被优化掉了,使得调试不那么确定 下面是一篇很好的文章,它描述了如何调试GAC中的程序集:这里没有真正的问题,但很明显,要使它正常工作,您可能会遇

我基本上是通过用同一dll的调试版本替换已安装的dll来调试已安装版本的软件

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

  • 我需要替换的dll文件存在于GAC中
  • 安装的版本号与调试版本号不同
  • 我很确定(没有检查),安装的版本有一个强名称,不确定调试版本
  • 您可以调试“调试”和“发布”版本。需要的是“.pdb”文件。“Release”版本的缺点是一些代码可能已经被优化掉了,使得调试不那么确定


    下面是一篇很好的文章,它描述了如何调试GAC中的程序集:

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

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

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

    • 如果不是完全信任运行,应用程序可能会检查替换DLL的强名称。所以一定要用同一把钥匙签名,避免头痛


    有什么问题吗?问题显然是如何在不破坏应用程序的情况下用调试版本替换生产dll感谢您的回答。但是,我首先需要用这个新版本替换旧安装的dll,然后进行调试。当我替换dll时,服务甚至无法启动。我错过了什么?在我替换GAC之前,1。我是否需要匹配新旧dll的版本,纯拷贝可以工作吗?2.我需要一个强名称吗。如果旧dll有一个强名称,那么新dll也应该有一个强名称吗?我知道也可能存在兼容性问题,我想知道这是一个兼容性问题还是上述问题之一。p、 我知道我可以调试发布版本,但我没有相关的pdb。我遇到的问题是我在gac中替换的dll原来是32位替换64位