какие библиотеки используются в проекте episerver? - PullRequest
1 голос
/ 01 апреля 2012

Установка episerver помещает сборки episerver в GAC, я вижу их с C: /windows/assembly.

Кроме того, все библиотеки episerver присутствуют в C: / Program files / Episerver после episerverустановка.

При создании проекта episerver через центр развертывания episerver или в Visual Studio 2010 с использованием шаблона episerver я вижу, что папка bin вновь созданного проекта содержит много episerver-dll, которыене очень удивительно.И я полагаю, что они скопированы из C: / Program Files /.Если я открою проект в visual studio, я увижу, что ссылаются на те dll, а не на GAC или C: / program files / episerver.

Ну, все это очень запутанно.Почему Episerver помещает DLL в GAC и не ссылается на них?Каков наилучший способ обработки ссылок на dpl-файлы episerver для разработки в команде?

Более того, если ep episserver будет ссылаться на dll из GAC, как бы я увидел это в VS.Я имею в виду, какими будут свойства ссылки?

Ответы [ 2 ]

2 голосов
/ 03 апреля 2012

Обычно мы создаем отдельный каталог, в котором мы храним все .dll-файлы и ссылаемся на них из этого каталога. Это означает, что все сторонние библиотеки и episerver-dll. Основная причина для этого состоит в том, чтобы избежать хлопот, когда новому разработчику необходимо настроить проект, а также избежать конфликтов между различными версиями при обращении из GAC.

2 голосов
/ 01 апреля 2012

По сути, это всего лишь решения по развертыванию episerver. Я постараюсь ответить на каждый ваш вопрос один за другим:

  1. Помещение dll в GAC полезно, если вы хотите, чтобы ваши пользователи обращались к dll в справочном диалоговом окне на вкладке «.NET Framework». Предположим, вы создаете простой проект (не episerver) и хотите добавить dll-файл episerver. Вместо того, чтобы искать их на жестком диске, вы ссылаетесь на те, которые указаны в GAC. Это легко для развития.
  2. Почему бы не ссылаться на библиотеки GAC? Это проще для развертывания вашего решения с помощью DLL. Предположим, вы развертываете свое решение на сервере. У сервера не будет dll-сервера в GAC (и не должно быть, в любом случае). Поэтому они, вероятно, устанавливают свойство «copy local = true» для копирования библиотек в выходную папку, что делает ваше решение переносимым. Кроме того, сборки GAC не «ссылаются» - GAC просто содержит копии в случае необходимости, и ссылка добавляется в папку «программные файлы» с dll.
  3. Лучший способ для команды разработчиков - использовать GAC или определить какую-то папку «Сторонних производителей» («внешние») в репозитории и поместить туда свои библиотеки (и ссылки оттуда). Первый подход требует установки episerver на каждом компьютере разработчика, второй занимает немного места в вашем хранилище.
  4. Поскольку на сборки GAC нельзя ссылаться (они на самом деле могут быть, но это головная боль), между результатами практически нет разницы - только разные пути.
...