ILMerge和保留程序集名称

3
我需要合并一些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。
那么,如何使它能够正常工作并保留原始程序集名称呢?
2个回答

2

你并没有具体说明这是标准开发过程的一部分还是构建过程的一部分。

如果是标准开发,你真的需要将所有内容合并在一起进行测试吗?

如果是构建过程,你可以将输出放到不同的目录中(可能需要先创建该目录),然后可以重复使用相同的程序集名称。


1

将文件合并到另一个目录中,使用 /out:somedir\mydll.dll


请提供有关您问题的更多详细信息! - sanghavi7

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接