我需要合并一些dll文件,并且文件名和程序集名称都需要与我的主要dll(mydll.dll)相同。我还需要pdb文件。如何完成这个任务?
这是我尝试过的一些方法:
- 只需使用ILMerge mydll.dll.... /out:mydll.dll,但是会出现“拒绝访问路径... mydll.pdb”的错误。 - 将mydll.dll重命名为mydllTemp.dll,将mydll.pdb重命名为mydllTemp.pdb,然后使用ILMerge mydelltemp.dll.... /out:mydll.dll。但是会出现“与mydlltemp.dll相关联的pdb已过期”的错误。这是因为ilmerge查找程序集名称来查找pdb,因此它在寻找被重命名的mydll.pdb。 - 将mydll.dll重命名为mydllTemp,然后使用ILMerge mydelltemp.dll.... /out:mydll.dll。它可以正常工作,但是当我将调试器附加到进程时它不会触发。 - 使用ILMerge mydll.dll ... /out:mydlltemp.dll,然后将mydlltemp.dll重命名为mydll.dll,将mydlltemp.pdb重命名为mydll.pdb。现在我可以将调试器附加到进程中,断点被触发。但是,程序集名称现在是mydlltemp而不是mydll。
那么,如何使它能够正常工作并保留原始程序集名称呢?
这是我尝试过的一些方法:
- 只需使用ILMerge mydll.dll.... /out:mydll.dll,但是会出现“拒绝访问路径... mydll.pdb”的错误。 - 将mydll.dll重命名为mydllTemp.dll,将mydll.pdb重命名为mydllTemp.pdb,然后使用ILMerge mydelltemp.dll.... /out:mydll.dll。但是会出现“与mydlltemp.dll相关联的pdb已过期”的错误。这是因为ilmerge查找程序集名称来查找pdb,因此它在寻找被重命名的mydll.pdb。 - 将mydll.dll重命名为mydllTemp,然后使用ILMerge mydelltemp.dll.... /out:mydll.dll。它可以正常工作,但是当我将调试器附加到进程时它不会触发。 - 使用ILMerge mydll.dll ... /out:mydlltemp.dll,然后将mydlltemp.dll重命名为mydll.dll,将mydlltemp.pdb重命名为mydll.pdb。现在我可以将调试器附加到进程中,断点被触发。但是,程序集名称现在是mydlltemp而不是mydll。
那么,如何使它能够正常工作并保留原始程序集名称呢?