实际上,可以对IL进行反汇编、修改并导出函数后重新组装。几年前我曾尝试过这个操作,并创建了一个应用程序,可以将dll反汇编,提供可能导出的函数列表,允许用户选择,然后重写IL并重新组装所有内容。然后,我可以直接从非托管代码中调用dll...或者从托管代码中使用p-invoke调用dll(虽然不太实用,但仍然有趣)。显然,这在.net语言本身中没有得到支持(即使在MSIL中也支持)。我不会在生产环境中使用它。失效链接: http://www.csharphelp.com/2007/03/exporting-managed-code-as-unmanaged/ Wayback Machine: https://web.archive.org/web/20140213030149/http://www.csharphelp.com/2007/03/exporting-managed-code-as-unmanaged/
我可能有点晚了,但是看看this。 使用这个小的msbuild任务,您可以创建一个C#库,可以像本地DLL一样调用它。(例如,为需要它们为本地dll的应用程序编写插件) 哦,不要忘记使用项目模板,它会为您设置一切。