2013-01-09 105 views
5

我创建使用名为“DocumentHashcode”中,我使用的第三方DLL控制台应用程序一个工具,第三方的dll - DocumentFormat.OpenXml.dll重命名在.NET

当我打算部署它时,我正在使用DocumentHashcode.exeDocumentFormat.OpenXml.dll来运行该应用程序。

我要重命名DocumentFormat.OpenXml.dllCATBldHashCodeSupporterDll.dll。任何人都可以建议如何实现这一目标?

+0

为什么你会隐藏你使用OpenXML的事实? – alzaimar

+0

其实我做了一个工具,被另一个客户使用,他们想给自己命名便利性,这就是为什么。你有什么想法吗? – Alpa

+1

你可能会在这里找到答案:http://stackoverflow.com/questions/4683913/renaming-icsharpcode-sharpziplib-dll – alzaimar

回答

3

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

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

或者你可以听AppDomain.AssemblyResolve event,它给你一旦JITer未能找到它加载DLL改名的机会。

0

如果你不介意有点脏,可以用文本编辑器来改变你的.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(参考包括=” ...),只是CommInterop和重新加载项目,你会发现这个参考文件现在有一个不同的名字