YorkshireCap Ответов: 3

A измерений - ДЛЛ не добавит VB.NET


Как добавить элемент управления Agauge в VB.net (2008) инструментарий?
Я пробовал способы общего назначения, описанные в интернете, но каждый раз это дает ошибку. Использование меню правой кнопки мыши дает ошибку, что dll "..не является Microsoft.Net module", или "библиотека типов не может быть загружена". Даже перетаскивание библиотеки dll в Панель инструментов ничего не делает.


Я только что обнаружил, что есть специальный раздел вопросов для этого элемента управления, поэтому я начал там вопрос и указал на это. Я продолжу там, чтобы нить было легче найти по отношению к элементу управления. (Видеть https://www.codeproject.com/Articles/448721/AGauge-WinForms-Gauge-Control?msg=5759030#xx5759030xx)

Что я уже пробовал:

С помощью меню правой кнопки мыши выберите пункт и перетащите библиотеку dll на панель инструментов.

3 Ответов

Рейтинг:
25

Henry Z.

После распаковки zip-папки, пожалуйста, убедитесь, что она актуальна .dll не блокируется. Visual studio позволит вам добавить файл .dll в качестве ссылки, даже если он есть .dll блокируется, ключ здесь заключается в том, чтобы убедиться, что .dll так же, как и любая другая .библиотеки DLL, которые были несжаты, не блокируются. Вы можете разблокировать все библиотеки DLL, выполнив следующие действия на своем компьютере.

Шаг 1 - распакуйте исходный архив.
Шаг 2 - Выберите содержимое распакованных файлов и сожмите их в виде zip-папки.
Шаг 3 - распаковать zip-архив на Шаге 2.

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

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


CHill60

Знаете ли вы, что вы можете использовать ссылку "улучшить решение" для добавления информации к существующему решению? Если он не отображается сразу, наведите курсор мыши на свой пост, и он должен появиться в правом нижнем углу вашего поста. Это предпочтительнее, чем публиковать несколько решений одного и того же вопроса - помимо того, что это сбивает с толку, когда один человек говорит две вещи, некоторые участники увидят в этом охоту за репостами и сообщат вам о злоупотреблениях.

YorkshireCap

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

YorkshireCap

Генри З. Я последовал этой идее, и хотя она все еще не будет добавлена в качестве ссылки или в набор инструментов, я попробовал что-то новое: я перетащил dll в Обозреватель решений, и когда я был поверх имени проекта появился знак плюс, поэтому я опустил его, и теперь dll появляется под файлами проекта в обозревателе решений. Однако я все еще не вижу его в наборе инструментов, поэтому не могу им воспользоваться.
Есть ли здесь что-то, чего я не знаю? Конечно же а .Чистый контроль-это а .Net control, так что даже если он встроен в C#, то теперь это скомпилированная dll, предназначенная для него .Сеть так что я должен быть в состоянии использовать ее в VB.net панель инструментов и перетащить элемент управления на мою форму?

YorkshireCap

Хм, я просто попытался перетащить имя dll из окна обозревателя решений в Панель инструментов, и оно появилось там, но только в виде объекта текстового файла.
Я также щелкнул правой кнопкой мыши на dll в обозревателе решений и выбрал "открыть с помощью... обозревателя объектов". Затем перечисляются имя и свойства элемента управления, но я все равно не могу поместить соответствующий элемент управления в Панель инструментов,чтобы перетащить его на форму.

Henry Z.

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

YorkshireCap

да, https://www.codeproject.com/Articles/448562/An-Improved-Version-of-AGauge-A-fast-and-performin#_articleTop

Henry Z.

элемент управления .net не является универсальным. Обычно элемент управления .net не будет работать с какой-либо версией .net, а вместо этого предназначен для конкретной версии .net или выше, кроме того, элемент управления .net может быть разработан только для x86 или x64 или предназначен как для x86, так и для x64. Обычно эти требования содержатся в документации по контролю.

хорошо, для моего теста я создал новый проект Visual studio, скачал его .проблемы, разблокировал ДЛЛ. Я сделал свой проект Visual Studio и только для x86, и мне приходилось переступать через .net-версии до управления a измерений должным образом могут быть добавлены на панель инструментов. Я начал с .net 2.0, 3.0, 3.5, все из которых не работали, чем я перешел на .net 4.5, который работал . Для вашего проекта попробуйте X86 и ориентируйтесь на версию .net 4.5, и она должна правильно отображаться в панели инструментов.

YorkshireCap

Я стою просветленный, спасибо тебе, Генри З. :)
Это хорошо, что я понимаю, что происходит сейчас - я только что посмотрел на статью, и ее дата была 2012 - так что это вписывается в необходимость VS2012; я просто не осознавал этого.
К сожалению, я не могу использовать фреймворк 4.5 в vs2008, так что мне не повезло. Я больше не могу позволить себе обновлять VS - Ну, во всяком случае, не полную версию.
Я просто подумал об использовании исходного кода и посмотреть, смогу ли я скомпилировать его с моим VS2008; не компилировал dll с VB6, но должен быть в состоянии понять это. Имейте в виду, что теперь, когда я думаю об этом, используемый код, вероятно, связан с версией фреймворка, так что, возможно, это не сработает.
Иначе я просто не смогу использовать контроль Эй Джея Бауэрса. Мне придется продолжать поиски.
Еще раз благодарю вас за то, что нашли объяснение происходящему.

Henry Z.

YorkshireCap, я скачал исходный код и перестроил его .dll нацелена на то .Net framework 3.5 теперь, как я иду о получении .dll для вас?

YorkshireCap

Ух ты, большое тебе спасибо за это.
РКВД - спасибо - попробует завтра.

Хорошо, это завтра, и DLL легко втягивается в набор инструментов VS2008-молодец.
К сожалению, когда я пытаюсь запустить, даже просто с экземпляром элемента управления в форме и без изменений, я получаю исключение:---------------------------

Система.Исключение InvalidOperationException было необработанное
Сообщение="произошла ошибка при создании формы. Увидеть Исключение.InnerException для получения более подробной информации. Ошибка такова: не удалось загрузить файл или сборку 'AGauge, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null' или одну из ее зависимостей. Система не может найти указанный файл."
Источник="a измерений тест1"
Трассировка стека:
в Agauge_test1.My.MyProject.Мои формы.Создайте__Instance__[T](экземпляр T) в 17d14f5c-a337-4978-8281-53493378c1071.vb:линия 190
в Agauge_test1.My.MyProject.MyForms.get_Form1()
в Agauge_test1.My.MyApplication.OnCreateMainForm() in C:\Users\Username\Documents\Visual Studio 2008\Projects\Agauge test1\My Project\Application.Дизайнер.В. Б.:линия 35
в корпорации Microsoft.На языке VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Онран()
в корпорации Microsoft.На языке VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel()
в корпорации Microsoft.На языке VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(строка[] командная строка)
в Agauge_test1.My.MyApplication.Main(String[] Args) в 17d14f5c-a337-4978-8281-53493378c1071.vb:строка 81
в системе.Домен приложений._nExecuteAssembly(монтаж, string[] аргументы)
в системе.домен приложений.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
в корпорации Microsoft.VisualStudio.Хостингпроцесс.HostProc.RunUsersAssembly()
в системе.Нарезание резьбы.ThreadHelper.ThreadStart_Context(состояние объекта)
в системе.Нарезание резьбы.Параллельном режиме.Выполнения(в параллельном режиме параллельном режиме, ContextCallback обратного вызова, состояние объекта)
в системе.Нарезание резьбы.ThreadHelper.ThreadStart()
Свойство Innerexception: Система.ИО.Исключение filenotfoundexception
Сообщение="не удалось загрузить файл или сборку 'AGauge, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null' или одну из его зависимостей. Система не может найти указанный файл."
Источник="a измерений тест1"
FileName="AGauge, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null"
FusionLog="=== Pre-bind state information ===\r\nLOG: User = PCname\\Username\r\nLOG: DisplayName = AGauge, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null\n (Fully-specified)\r\nLOG: Appbase = file:///C:/Users/Username/Documents/Visual Studio 2008/Projects/Agauge test1/bin/Debug/\r\nLOG: Initial PrivatePath = NULL\r\nCalling assembly : Agauge test1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null.\r\n===\r\nLOG: This bind starts in default load context.\r\nLOG: No application configuration file found.\r\nLOG: Using machine configuration file from C:\\Windows\\Microsoft.NET\\Framework\\v2.0.50727\\config\\machine.config.\r\nLOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind).\r\nLOG: Attempting download of new URL file:///C:/Users/Username/Documents/Visual Studio 2008/Projects/Agauge test1/bin/Debug/AGauge.DLL.\r\nLOG: Attempting download of new URL file:///C:/Users/Username/Documents/Visual Studio 2008/Projects/Agauge test1/bin/Debug/AGauge/AGauge.DLL.\r\nLOG: Attempting download of new URL file:///C:/Users/Username/Documents/Visual Studio 2008/Projects/Agauge test1/bin/Debug/AGauge.EXE.\r\nLOG: Attempting download of new URL file:///C:/Users/Username/Documents/Visual Studio 2008/Projects/Agauge test1/bin/Debug/AGauge/AGauge.EXE.\r\n"
Трассировка стека:
в Agauge_test1.Form1.метод InitializeComponent()
в Agauge_test1.Form1..ctor()
Свойство innerexception:

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

Henry Z.

Йоркшир, я продублировал ошибку на своей стороне и исправил ее с помощью нескольких модификаций, пожалуйста, пришлите мне еще одну ссылку dropbox, чтобы я мог дать вам обновленный dll-файл.

YorkshireCap

Привет, Генри З. Отлично - спасибо. https://www.dropbox.com/request/x5HjENWmAfzl5i9RdyjT

YorkshireCap

Ага! Да, теперь он прекрасно работает. Большое спасибо, Генри Зет, что проявил интерес и помог мне собраться с мыслями. Я изучаю настройки прямо сейчас и должен быть в состоянии добавить это в свой проект симулятора.

Кстати, не могли бы вы поделиться со мной, в чем была проблема? Была ли это зависимость или что-то еще?

Henry Z.

Йоркшир, рад, что смог помочь. Я скачал исходный проект, изменил .net framework и перестроил проект, однако в 1-й сборке были некоторые проблемы, связанные с некоторыми зависимостями .net dll, которые все еще ссылались на старые более высокие .net 4.0. поэтому истинное исправление состояло в том, чтобы изменить .net framework для проекта и добавить разные зависимости .net 3.5 и перестроить проект/dll.

Рейтинг:
1

Henry Z.

Пожалуйста, убедитесь, что Windows 10 не блокирует загруженную библиотеку dll. Часто Windows 10 автоматически блокирует библиотеки DLL, которые были перенесены с одного компьютера на другой. Вы можете проверить, блокируется ли ваша библиотека dll, щелкнув правой кнопкой мыши файл dll и выбрав пункт Свойства, а затем посмотреть вниз, чтобы увидеть, блокируется ли он. Вы всегда можете сделать поиск изображений google для "Unblock Dll", который даст вам лучший визуальный эффект.


YorkshireCap

Спасибо, Генри З. У меня есть Windows 7, но она, безусловно, была заблокирована, как вы и предлагали, поэтому я разблокировал исходный zip-файл, а затем снова извлек его и попытался добавить. Черт - все равно не будет тащить или иметь добавленную ссылку. Список ссылок по-прежнему показывает "система не может найти указанную ссылку".
Я также только что попытался загрузить более старый, оригинальный элемент управления Agauge, но веб-страница больше не может быть найдена.
Ничего себе, я только хотел попробовать заменить цифровой дисплей оборотов моего симулятора на правильный циферблат тахометра. Описание веб - страницы звучало так, как будто это было бы легко :)

Рейтинг:
0

OriginalGriff

Добавьте ссылку на свой проект: откройте решение на панели Обозреватель решений, откройте ветвь проекта и щелкните правой кнопкой мыши ветку ссылки. Выберите пункт "Добавить ссылку", а затем перейдите к файлу DLL.

Если это сборка .NET, она будет добавлена, и вы сможете ее использовать.

Если это не так, то вы получите сообщение об ошибке, и вы не сможете использовать его напрямую.
Если это так, попробуйте эту версию: (A измерений) Обязанности И Достижения Контроль Датчик [^] или это: Улучшенная версия AGauge (быстрый и производительный датчик)[^] в случае, если ваш DLL - файл поврежден.


YorkshireCap

Спасибо оригинальному Гриффу, это другой метод, поэтому я попробовал его. К сожалению, это не сработало...
Я щелкнул правой кнопкой мыши на проекте в обозревателе решений выбран "добавить ссылку...", выбрала вкладку "Обзор", выбрал a измерений DLL и нажал "ОК".
Это не сработало, поэтому я воспользовался вашей ссылкой, чтобы загрузить AGauge_Bin.zip (DLL и демо) еще раз, к моему "C:\Program папка" Files (x86)\Microsoft Visual Studio 9.0\AGauge_Control-CustomControl".
Затем я снова попытался добавить ссылку, но, к сожалению, это не сработало; в обозревателе решений ничего не появилось. Глядя в список ссылок проекта, я вижу название ссылки "Agauge", но путь говорит: "система не может найти указанную ссылку".


Был ли этот инструмент успешно добавлен кем-либо еще? Я не понимаю, почему это не добавит к моему vs2008