我有一个当前部署在我们的生产服务器上的EXE(c#.net 2)。我继承了对此应用程序进行一些更改并重新部署的任务。
我没有写这个应用程序,我已经指出了各种网络驱动器上的几个不同的文件夹,有几个不同的Visual Studio解决方案(~10),这些应用程序的各种咒语随着时间的推移而成为竞争者用于生成此exe的Visual Studio项目,但我不知道哪个项目与生产中的EXE匹配。
有没有办法使用.net Reflector或其他工具来确定源文件在用于编译EXE时所处的原始文件路径,然后我可以向后工作以确定正确的Visual Studio解决方案并开始在那里进行更改。
由于
答案 0 :(得分:7)
如果您无法了解生产中运行的原因是什么,那听起来就像是一种情况。
尽管如此,一个可能的解决方案是查看.exe程序集的调试头,如果它已经使用调试符号编译,它可能包含pdb的原始完整路径,为您提供一个线索已建成。您可以使用属于Windows sdk的dumpbin
工具来获取它。
以下是输出的示例:
Debug Directories
Time Type Size RVA Pointer
-------- ------ -------- -------- --------
4A0F2A94 cv 51 0006672C 6492C Format: RSDS, {77468AA8-8494-46AC-87DF-422721517504}, 8, C:\sources\mcs\class\Mono.Cecil\obj\Debug\Mono.Cecil.pdb
更好的是,如果你有方便的pdb,你可以使用像pdbdump这样的工具来知道用于编译程序集的文件。
答案 1 :(得分:0)
你最好的选择可能是使用Reflector& http://www.codeplex.com/reflectoraddins处的一个文件生成器插件,用于将代码转储到文件中。在进行任何更改之前,请确保您可以重建。