Как изменить имя библиотеки DLL, проект и решение пользовательского элемента управления и использовать его - PullRequest
0 голосов
/ 23 марта 2012

затем обновите приложение Windows Form, где элемент управления используется для ссылки на новую DLL для пользовательского элемента управления

Я создал пользовательский элемент управления, который я использую в приложении Windows Forms, которое я написал. Я создал отдельный проект, чтобы я мог использовать элемент управления в нескольких приложениях. Он был написан на C # с использованием VS 2010. Насколько я понимаю, пользовательский элемент управления находится в DLL. Я импортировал элемент управления в свою панель инструментов в моем текущем приложении, и, кажется, он работает нормально. Для контроля версий и соответствующих целей именования мне нужно переименовать проект, решение и DLL (думаю, я хочу, чтобы все они имели одинаковые имена), которые я использую для создания настраиваемого элемента управления. Это изменит имя DLL, в которой находятся элементы управления… я думаю. Я выбрал текущее приложение и нашел две ссылки на старую DLL, которая все еще существует, но с тех пор, как я переименовал проект, теперь есть DLL с новым именем. Я попытался импортировать элемент управления из недавно названной DLL, которая работала, но когда я попытался заменить ссылки на старую DLL на новую, это вызвало все виды необъяснимого хаоса Как заставить мое текущее приложение использовать тот же старый элемент управления, но из другого пространства имен?

1 Ответ

0 голосов
/ 23 марта 2012

Способ решения этой конкретной проблемы для наших собственных элементов управления и способ, которым это делают несколько сторонних поставщиков элементов управления, состоит в том, чтобы оставить пространство имен нетронутым, а просто изменить имя DLL (т.е. MyControl.v11.1.DLL).

Затем, когда пришло время обновить элемент управления, вы редактируете файл проекта, изменяете имя DLL, и вы запускаетесь.

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

Во-первых, мы всегда копируем версию DLL в каталог, относящийся к проекту.Таким образом, если разработчик обновит свой компьютер до более поздней версии, он не будет случайно встроен в приложение.

Во-вторых, мы всегда гарантируем, что ссылки на DLL в проекте и файлы licenses.licx имеютинформация о версии и открытом ключе удалена.

Наконец, мы вручную редактируем файл проекта, чтобы убедиться, что для проекта не требуется конкретная версия и что он ссылается на локальную копию сборки.

Здесьпример записи из нашего файла проекта со всеми вышеупомянутыми приложениями:

<Reference Include="Controls.v11.1">
  <HintPath>..\..\Assemblies\Controls.v11.1.dll</HintPath>
  <SpecificVersion>False</SpecificVersion>
</Reference>

Мы успешно использовали этот подход для наших проектов, по крайней мере, 8 лет, и с тех пор, как мы внедрили этот подход, у нас нет 'Не было проблем с обновлением DLL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...