2016-08-02 2 views
0

, мы используем библиотеки infragistics в течение длительного времени. Но теперь мы столкнулись с проблемой, которая была решена здесь Cannot select Infragistics controls in winform designer.Используя локальную копию DLL-библиотеки infragistics и копию в GAC

Теперь я задаю более конкретный вопрос: почему эта проблема не возникает на всех компьютерах наших коллег, но только на моем? У нас есть такое же визуальное студийное решение, и весь исходный код из репозитория subversion.

Мы решили поместить копию библиотек infragistics в наш каталог управления в проекте, чтобы мы могли его быстро развернуть, скопировав и вставив файлы в целевой каталог (но нам все же нужен инструмент настройки для установить в первый раз).

Как мы можем убедиться, что выполнены следующие требования (полезны или нет)?

  • Обновление заявки по-прежнему возможно по копиям &.
  • Разработчик отслеживает необходимые инфракрасные библиотеки DLL, копируя их в каталог элементов управления (который затем копируется в исполняемый каталог приложения).
  • проблема по ссылке выше оленьей кожи происходят

Возможно, мы упускаем что-то важное?

  • Неправильная практика обновления приложения путем простого копирования новых файлов в каталог приложения? Или это даже «незаконно» каким-то образом?
  • Необходимы ли инструменты для инфразведения через установку или установщик MSI? Или достаточно скопировать их?

[править # 1]:

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

+0

Некоторые библиотеки должны быть зарегистрированы с помощью regsvr32, которая является то, инсталляторы, как правило, заботиться. Может, в этом проблема? – Nyerguds

+0

То, как вы взломали себя из неприятностей, - это необычайно плохая практика. Вы никогда не можете предположить, что GAC имеет соответствующие сборки. Построение программы всегда должно выполняться с помощью * эталонных сборок *. Как и в случае с сборками .NET framework, например, хранятся в c: \ program files (x86) \ reference assemblysies. Если установщик поставщика не предоставляет их, вы должны их создать, сделайте свою собственную копию в хорошо известном месте. Затем также проверьте их на исходный контроль, чтобы вы могли построить год или два. –

+0

@ Hans Passant: с помощью каталога элементов управления в нашей папке с решениями мы думали, что это правильный путь. Но, как кажется (http://stackoverflow.com/questions/16320746/cannot-select-infragistics-controls-in-winform-designer), это приводит к неожиданному поведению. У меня была та же проблема, но у моих коллег их нет. –

ответ

1

Вот мои два цента:

  • Попробуйте установить все библиотеки Infragistics Copy Local свойство True. Это скопирует dll в папку bin каждый раз при создании вашего приложения . Это может решить проблему, с которой вы столкнулись с , при обновлении приложения копией &paste;
  • Лучше, чтобы каждый разработчик установил библиотеки в GAC. Полагаю, вы все используете одну и ту же версию этих библиотек. В противном случае это будет настоящий хаос. Если по какой-то причине вы не используете одни и те же версии, попробуйте установить для каждой версии Infraistics dll Specific Version значение False
  • Если все элементы управления отображаются в попытке компонента (вниз в конструкторе), это наглядно показывает, что Designer.dll сломан или не найден. Поэтому всегда рекомендуется устанавливать DLL в GAC - это также должно добавить DLL Infragistics Designer, и у вас не должно быть этой проблемы.

Итак, установите все в GAC, установите Copy Local в true и установите для определенной версии значение false.

Кроме того, когда вам нужно обновить проект, содержащий библиотеки Infragistics использовать их хороший инструмент Version Utility - это может сэкономить много усилий

+0

Первый момент - это не проблема прямо сейчас. Проблема только с разработчиком. Во-вторых, мы устанавливаем всегда одну и ту же версию для всех разработчиков. Третья точка звучит достаточно хорошо - поскольку использование локальной копии dll вместо gac-копии может опустить конструктор dll. Я думаю, что ваш ответ, кажется, лучше всего отвечает на мой вопрос до сих пор. –

+0

. Я бы рекомендовал не устанавливать определенную версию в False в ссылках, поскольку это может вызвать путаницу, если один разработчик находится на другой версии, поскольку два разработчика могут видеть разные поведения локально во время работы тот же источник, и вы можете не понимать, что на самом деле вы используете разные версии инструментария Infragistics. – alhalama

Смежные вопросы