Есть ли способ использовать пользовательский элемент управления в конструкторе и избежать GAC? - PullRequest
7 голосов
/ 15 февраля 2010

Есть отличная библиотека, которую я нашел здесь . Это AeroWizard, выполненный в Windows Forms, и он элегантно обрабатывает Aero Basic. Что удивительно, так это поддержка дизайнера. Когда я пытаюсь открыть любую из страниц WizardPages в образце в конструкторе форм, я получаю эту ошибку:

Could not find type 'Aero.Controls.MainInstructionsLabel'. Please make sure that the assembly that contains this type is referenced. If this type is a part of your development project, make sure that the project has been successfully built using settings for your current platform or Any CPU.

В моем проекте есть ссылки на библиотеки Aero.Controls и Aero.Wizard, поэтому я не совсем уверен, что происходит не так.

Нужно ли GAC регистрировать сборку, чтобы иметь поддержку дизайнера?

Edit: Я только что проверил с отражателем, вот ссылки

Aero.Controls
Mscorlib
Система
System.Drawing
System.Windows.Forms
user32.dll

Aero.Wizard
Mscorlib
Система
System.Drawing
System.Windows.Forms
dwmapi.dll
gdi32.dll
user32.dll
uxtheme.dll

Ничто, кроме родных Dlls, не касается меня, но я не понимаю, как это могло бы помешать визуализации формы в Designer.

Вот скриншот от дизайнера: альтернативный текст http://www.ceasetopanic.com/wp-content/uploads/2010/02/compile-error.jpg

Ответы [ 2 ]

3 голосов
/ 15 февраля 2010

В Visual Studio не должно возникнуть проблем с поиском элемента управления и его загрузкой, если проект, который его использует, ссылается на DLL. Возможно, вы захотите попробовать построить проект, а затем закрыть и снова открыть Visual Studio. Нет необходимости в сборке в GAC.

Вы также можете попробовать открыть сборку в Reflector, чтобы посмотреть, ссылается ли она на другие сборки, которых у вас нет. Если Aero.Controls ссылается на другую сборку, на которую вы не ссылались, и Visual Studio не может найти ее при поиске, вы увидите такую ​​ошибку, и GAC'ы, указанные выше, не исправят это.

1 голос
/ 15 февраля 2010

Visual Studio должна быть в состоянии найти их. Обычно это означает GAC, однако вы можете использовать трюк, который я использую здесь, в моем блоге , чтобы обмануть приложение, чтобы искать в другом месте. Я использовал это, чтобы обмануть внешний вид, чтобы найти наши dll при написании дополнений. Лично я думаю, что GAC может быть меньше головной боли с точки зрения обслуживания.

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