При запуске приложения происходит сбой - отсутствует Microsoft.VisualBasic.PowerPacks
Я написал простое приложение на VB.NET, которое отлично работает на компьютере разработчика.
Однако на другом компьютере, даже если установлен.NET Framework, он аварийно завершает работу при запуске с исключением System.InvalidOperationException.
Кажется, есть проблема с поиском сборок Visual Basic.
Вот одна из ошибок (я заменил конфиденциальную информацию тремя точками):
*** Assembly Binder Log Entry (16/06/2013 @ 15:45:12) ***
The operation failed.
Bind result: hr = 0x80070002. The system cannot find the file specified.
Assembly manager loaded from: C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll
Running under executable C:\Users\....
--- A detailed error log follows.
=== Pre-bind state information ===
LOG: User = ...
LOG: DisplayName = Microsoft.VisualBasic.PowerPacks.Vs, Version=10.0.0.0, Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a
(Fully-specified)
LOG: Appbase = file:///C:/Users/......
LOG: Initial PrivatePath = NULL
LOG: Dynamic Base = NULL
LOG: Cache Base = NULL
LOG: AppName = MSystemAdmin.exe
Calling assembly : MSystemAdmin, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null.
===
LOG: This bind starts in default load context.
LOG: No application configuration file found.
LOG: Using host configuration file:
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config.
LOG: Post-policy reference: Microsoft.VisualBasic.PowerPacks.Vs, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
LOG: GAC Lookup was unsuccessful.
LOG: Attempting download of new URL file:///C:/.../Desktop/Microsoft.VisualBasic.PowerPacks.Vs.DLL.
LOG: Attempting download of new URL file:///C:/.../Desktop/Microsoft.VisualBasic.PowerPacks.Vs/Microsoft.VisualBasic.PowerPacks.Vs.DLL.
LOG: Attempting download of new URL file:///C:/.../Desktop/Microsoft.VisualBasic.PowerPacks.Vs.EXE.
LOG: Attempting download of new URL file:///C:/.../Desktop/Microsoft.VisualBasic.PowerPacks.Vs/Microsoft.VisualBasic.PowerPacks.Vs.EXE.
LOG: All probing URLs attempted and failed.
4 ответа
Не совсем понятно, почему PowerPacks отсутствует, может возникнуть проблема с клиентским профилем.NET 4. Было несколько версий PowerPacks, и нумерация версий должна быть беспорядочной. На моей машине та же версия сообщается как v2.0.50727, даже если она хранится в GAC как версия 10.0.
Лучше всего вернуться к своему проекту. Нажмите значок "Показать все файлы" на панели инструментов в окне обозревателя решений. Это теперь показывает узел ссылок. Разверните его и выберите ссылку на PowerPacks. В окне "Свойства" измените свойство "Копировать локально" на "Истина".
Перестройте, и ваш каталог сборки теперь будет иметь копию DLL. Скопируйте его вместе с EXE на целевой компьютер.
Вот URL, чтобы загрузить Microsoft Visual Basic Power Packs 10.0
По-видимому, это проблема с "PowerPacks"; это дополнительные элементы управления по сравнению с теми, которые заданы по умолчанию в Visual Studio (в части дизайна формы в разделе "Панель инструментов"). Если вы установите требуемый пакет на целевой компьютер, все должно быть в порядке.
У меня была эта проблема в прошлом, и моя рекомендация не опирается на эти элементы: они включают в себя полезные функции (в моем случае это была эллиптическая форма), но могут быть заменены небольшим количеством работы и более простыми объектами. Если вы хотите продать свою программу более или менее широкой аудитории, полагаться на это может стать проблемой: этот пакет по умолчанию не установлен практически на любом компьютере, и поэтому вам придется попросить своих клиентов продолжить установку. Найти эти конкретные элементы управления просто: на "Панели инструментов" они должны быть перечислены в разделе "PowerPacks" или аналогичные.
Прочитав комментарий Ганса Пассанта, я вспоминаю, что файл.dll должен быть помещен в тот же каталог, что и исполняемый файл, но у меня сложилось впечатление, что пакет PowerPacks из предоставленной ссылки должен быть установлен в любом случае (по крайней мере, на компьютерах, не имеющих Visual Studio).
Я обновлял Visual Studio с Visual Studio 2013 до Visual Studio 2015 на новом компьютере с Windows 10. При этом я скопировал папку "Проекты" с компьютера с Windows 7 по тому же пути на компьютере с Windows 10.
Когда я открыл проект, который использовал MS.VB.PowerPacks.VS, мне сообщили, что файл не найден. Я скачал новейшую версию для MS.VB.PowerPacks.VS версии 12.0.0.0. Visual Studio 2015 исключил мои страницы форм, которые использовали PrintForm, и сообщил мне:
System.IO.FileNotFoundException: не удалось загрузить файл или сборку 'Microsoft.VisualBasic.PowerPacks.VS, версия 10.0.0.0.
Я изменил ссылку на vcersion 12.0.0.0, но она все еще не была распознана.
Мое исправление: я скопировал C:\Program Files(x86)\Reference Assemblies\Microsoft\VBPowerPacks\v10.0
папку с моего компьютера с Windows 7 на компьютер с Windows 10, а затем удалил ссылку v12.0.0.0 и добавил ссылку v10.0.0.0 в программу. Затем я вышел из проекта и снова открыл его, и все было хорошо, формы были показаны в их первоначальной красоте.