在.net中重命名第三方DLL

本文关键字:第三方 DLL 重命名 net | 更新日期: 2023-09-27 17:51:08

我使用控制台应用程序创建了一个名为"DocumentHashcode"的工具,其中我使用第三方DLL - DocumentFormat.OpenXml.dll

当我要部署它时,我使用DocumentHashcode.exeDocumentFormat.OpenXml.dll来运行应用程序。

我想把DocumentFormat.OpenXml.dll重命名为CATBldHashCodeSupporterDll.dll。谁能告诉我如何做到这一点?

在.net中重命名第三方DLL

您需要手动加载程序集。最简单的方法是在JITer尝试加载DocumentFormat之前加载它。OpenXml名称空间。您可以像这样手动加载它:

var dllPath = Path.Combine(Directory.GetCurrentDirectory(), "reNamed.dll");
Assembly.LoadFile(dllPath);

或者您可以收听AppDomain。AssemblyResolve事件,它使您有机会在JITer无法找到它时加载重命名的DLL。

您也可以尝试用新名称重新组装DLL文件。有关详细信息,请查看Stackoverflow:重命名ICsharcode-dll中的最后一个答案

如果您不介意弄得有点脏,您可以使用文本编辑器来修改您的.csproj文件。例如,如果你的。dll是xr-CommInterop.dll,你应该找到一些XML,如:

<Reference Include="xr-CommInterop, Version=3.0.0.0, Culture=neutral, processorArchitecture=AMD64">
  <SpecificVersion>False</SpecificVersion>
  <HintPath>C:'Mypath'xr-CommInterop.dll</HintPath>
</Reference>

如果您将第一个xr-CommInterop(在Reference Include="…"中)更改为仅CommInterop并重新加载项目,您将发现引用现在具有不同的名称