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

那么我怎样才能让它工作并拥有原始的程序集名称呢?

4

2 回答 2

2

您并没有真正提到这是在标准开发过程中还是这是构建过程的一部分。

如果是用于标准开发,您真的需要合并所有内容来进行测试吗?

如果它用于您的构建过程,您可以将输出转到不同的目录(您可能首先需要 mkdir),然后您可以重用相同的程序集名称。

于 2012-10-15T18:13:08.720 回答
1

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

于 2013-03-07T09:07:10.637 回答