Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Shared DLLs и PrivateProbingPath


Автор: jonie 1.12.2009, 22:09
Посоветуйте как организовывать структуру каталогов приложения .NET, имеющего сервисы NT, кучу (более 300) DLL общего назначения (для клиента и сервисов), кучи настроек соотвественно.

Сейчас организовано так:
Код

Services\ServiceName\Shared
Shared\ (реальный каталог с общими длл-ками)
Client\Shared


Shared каталоги для каждого сервиса и клиентских частей есть junction (softlink) ссылка на /shared
Это сделано, т.к. .NET не поддерживает (или поддерживает?!) PrivateProbingPath в конфигурации приложения отличные от субдиректорий, в котором само приложение находится.

Соотвественно при такой структуре есть проблемы с сетапами (нужно например создавать junction ссылки), сложно оперировать невысоко квалифицированному админ персоналу с таким приложением. Я уж не говорю, что само по себе обновление любой shared библиотеки это пляска с бубном.

GAC использовать не очень хочется, т.к. shared библиотеки меняются часть (бывает что по 3-4 раза в день).

Возможно есть иные, более удачные реализации ?

Автор: tol05 1.12.2009, 23:27
Цитата(jonie @  1.12.2009,  21:09 Найти цитируемый пост)
Это сделано, т.к. .NET не поддерживает (или поддерживает?!) PrivateProbingPath в конфигурации приложения отличные от субдиректорий, в котором само приложение находится.

http://msdn.microsoft.com/ru-ru/library/823z9h8w.aspx

и еще
Цитата

Если в каталоге имеется несколько версий сборки и требуется сослаться на конкретную версию сборки, необходимо использовать элемент <codeBase> вместо атрибута privatePath элемента <probing>. Если используется элемент <probing>, среда выполнения останавливает проверку при первом обнаружении сборки, у которой совпадает упоминаемое в ссылке простое имя сборки независимо от того, является ли совпадение точным или нет. Если найдено точное совпадение, используется найденная сборка. Если совпадение не является точным, проверка прекращается и привязка считается неудавшейся.

Автор: jonie 1.12.2009, 23:32
tol05, спасибо за ссылку, в MSDN. Потрудитесь ее прочитать сами, ок?
Цитата

privatePath
    

Обязательный атрибут.

Задает вложенные папки базовой папки приложения, которые могут содержать сборки. Каждая вложенная папка отделяется точкой с запятой.

Автор: tol05 2.12.2009, 00:38
да, проглядел.

ок... прочитав http://www.codeproject.com/KB/install/assemblydeployment.aspx?df=100&forumid=232507&exp=0&select=1983195 могу предложить попробовать использовать DEVPATH и developmentMode

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)