2013-01-09 52 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和重新加載項目,你會發現這個參考文件現在有一個不同的名字