Переименование ICSharpCode.SharpZipLib.dll - PullRequest
1 голос
/ 13 января 2011

Что ж, у меня возникла проблема с переименованием файла ICSharpCode.SharpZipLib.dll в любое другое. Я пытаюсь сократить имя файла. Я ссылаюсь на сборку в проекте, но когда программа достигает операторов, где я использую библиотеку. Он порождает ошибку, что не может найти сборку или файл 'ICSharpCode.SharpZipLib'. Когда я изменяю имя файла обратно на ICSharpCode.SharpZipLib.dll, приложение работает норально. Итак, есть ли способ изменить имя файла. Кроме того, я могу изменить его без нарушения лицензии (я собираюсь использовать его в коммерческом приложении). Спасибо.

Ответы [ 3 ]

5 голосов
/ 13 февраля 2014

Вы можете попытаться разобрать библиотеку и затем собрать ее с новым именем.

* 1003 Е.Г. *

1) Откройте командную строку Visual Studio.

ildasm /all /out=ICSharpCode.SharpZipLib.il ICSharpCode.SharpZipLib.dll
ilasm /dll /out=shortname.dll ICSharpCode.SharpZipLib.il

2) Добавить shortname.dll в проект

4 голосов
/ 13 января 2011

Поскольку вы переименовали DLL, среда выполнения .Net не знает, как найти ее автоматически.

Вы можете позвонить Assembly.Load, чтобы вручную загрузить переименованный файл.
Обратите внимание, что вам нужно сделать это перед вызовом любых методов, использующих сборку, поскольку JITter должен загрузить все типы, используемые (напрямую) методом, до того, как метод начнет выполняться.

0 голосов
/ 13 января 2011

DLL скомпилирована, поэтому переименование файла в любом случае не изменит namespace внутри него.Вы можете назначить ему псевдоним с помощью директивы using.

using zip = ICSharpCode.SharpZipLib;
...