Как статически связать библиотеки для C # ClassLibrary? - PullRequest
6 голосов
/ 09 июля 2009

Я создаю библиотеку классов LL в c # с помощью Microsoft, предоставляемой Dll's.

Теперь я хочу статически добавить предоставленные Microsoft библиотеки в My Dll. Как я могу это сделать. Я просто добавил ссылку на те Microsoft, предоставленные Dll и создание My Dll? Это нормально или нет?

если Microsoft предоставила dll, недоступную на другой машине, то моя Dll может не работать, мне нужно статически добавить библиотеки

Как я могу это сделать?

Ответы [ 4 ]

6 голосов
/ 09 июля 2009

В .NET не существует статической ссылки на другую сборку. Некоторые сторонние продукты, такие как .NET linker , объединяют сборки в один, но они не поддерживаются.

Если у вас есть лицензия на распространение для этой библиотеки, вы можете отправить копию вместе со своей сборкой. В Visual Studio это можно сделать, установив для параметра «Копировать локальный» значение «Истина» в окне свойств для этой ссылки на сборку.

4 голосов
/ 28 января 2012

Смотрите обсуждение здесь и читайте комментарии - Джефф предоставляет способ.

http://blogs.msdn.com/b/microsoft_press/archive/2010/02/03/jeffrey-richter-excerpt-2-from-clr-via-c-third-edition.aspx

3 голосов
/ 09 июля 2009

Если dll недоступна во время выполнения; да не получится. Тем не менее:

  • многие библиотеки Microsoft Microsoft предустановлены с .NET (предостережение: "профиль клиента")
  • многие из библиотек Microsoft являются распространяемыми; так что вы можете включить их в свой пакет

В базовой платформе нет компоновщика, хотя ILMerge может быть полезным.

0 голосов
/ 09 июля 2009

Не очень ясно, чего вы хотите достичь, но, похоже, вы обеспокоены тем, что ваш класс lib будет работать на какой-то другой машине или нет. Дело в том, что .Net Framework - это бесплатный распространяемый продукт, который следует установить, если он отсутствует на целевой машине. Если на компьютере уже установлена ​​платформа .Net, проблем как таковых не должно быть.

Статическое связывание как таковое не имеет смысла в .Net, кроме добавления ссылки на сборку в ваш проект. Надеюсь, это поможет

...