Переименование ICSharpCode.SharpZipLib.dll
У меня возникла проблема с переименованием файла ICSharpCode.SharpZipLib.dll в любое другое. Я пытаюсь сократить имя файла. Я ссылаюсь на сборку в проекте, но когда программа достигает операторов, где я использую библиотеку. Он порождает ошибку, что не может найти сборку или файл 'ICSharpCode.SharpZipLib'. Когда я изменяю имя файла обратно на ICSharpCode.SharpZipLib.dll, приложение работает норально. Итак, есть ли способ изменить имя файла. Кроме того, я могу изменить его без нарушения лицензии (я собираюсь использовать его в коммерческом приложении). Благодарю.
3 ответа
Вы можете попытаться разобрать библиотеку и затем заново собрать ее с новым именем.
Например
1) Откройте командную строку Visual Studio.
ildasm /all /out=ICSharpCode.SharpZipLib.il ICSharpCode.SharpZipLib.dll
ilasm /dll /out=shortname.dll ICSharpCode.SharpZipLib.il
2) Добавить shortname.dll в проект
Поскольку вы переименовали библиотеку DLL, среда выполнения.Net не знает, как найти ее автоматически.
Ты можешь позвонить Assembly.Load
вручную загрузить переименованный файл.
Обратите внимание, что вам нужно сделать это перед вызовом любых методов, которые используют сборку, поскольку JITter должен загрузить все типы, используемые (напрямую) методом, до того, как метод начнет выполняться.
DLL скомпилирована, поэтому переименование файла не изменит namespace
все равно внутри. Вы можете назначить ему псевдоним через using
директивы.
using zip = ICSharpCode.SharpZipLib;