我使用名为“DocumentHashcode”的控制台应用程序创建了一个工具,其中我使用了第三方 DLL - DocumentFormat.OpenXml.dll
.
当我要部署它时,我正在使用DocumentHashcode.exe
和DocumentFormat.OpenXml.dll
运行应用程序。
我想重命名DocumentFormat.OpenXml.dll
为CATBldHashCodeSupporterDll.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 并重新加载项目,您会发现该引用现在具有不同的名称。