С Новым годом! Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.61/70: Рейтинг темы: голосов - 70, средняя оценка - 4.61
8 / 8 / 2
Регистрация: 20.02.2009
Сообщений: 139

Загрузка assembly

27.12.2010, 22:37. Показов 13509. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день.

Вот уже который день бьюсь с непониманием, как же загрузить сборку в приложении.
C#
1
2
3
            string path=Application.StartupPath + Prog.Properties.Settings.Default.MicrosoftReportViewerWinForms;
            AssemblyName an = AssemblyName.GetAssemblyName(path);
            Assembly.LoadFrom(path);
-сборка лежит в папке отличной от корневой и C:\Windows\assembly\
-на другой машине без этой сборки ничего не работает
-если сборка в корне или в папке C:\Windows\assembly\, то все окей
-никак не получается запустить сборку через домены
-никак не удается запустить ее через метод LoadFrom()
-пути все правильные

Подскажи, каким макаром ее запускать?
Спасибо.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.12.2010, 22:37
Ответы с готовыми решениями:

Assembly.Load - OutOfMemoryException
При загрузке сборки из массива байтов(дешифрованных CryptoStream'ом) я получаю OutOfMemoryException. Пытался поменять методы шифрования и...

Можно ли дописать код в Assembly?
здравствуйте, уважаемые форумчане. в .net имеются достаточно мощные средства для генерации кода, например CodeDom или...

В чём разница между Assembly и DLL?
Привет Всем! У меня вот такой вопрос: в чем разница между Assembly в .Net и обычной DLL? и что вообще такое Assembly, а то определение не...

13
11 / 6 / 0
Регистрация: 24.12.2010
Сообщений: 22
28.12.2010, 09:38
Assembly.LoadFile(path) не помогает ?
Напишите сообшение об ошибке которое выдаёт программа
1
8 / 8 / 2
Регистрация: 20.02.2009
Сообщений: 139
28.12.2010, 10:31  [ТС]
Именно, этот метод срабатывает. Спасибо за намек. Это такой "вай аут", выход из положения.
Но как же быть с загрузкой сборок в домен приложения или загрузкой из сборки?
Ошибка самая обычная: Не найдена сборка такая-то такой-то версии, такой-то паблик ключ по такому-то пути, зафиксировано вхождение в таком то классе. Далее показывает какие сборки загрузились.

Я, конечно, извиняюсь за такое описание ошибки, но пока нет под рукой машины с хп и виртуалбокса.
0
11 / 6 / 0
Регистрация: 24.12.2010
Сообщений: 22
28.12.2010, 10:38
Цитата Сообщение от KIMka Посмотреть сообщение
Но как же быть с загрузкой сборок в домен приложения или загрузкой из сборки?
Не могу ничего сказать про абстрактного коня сами знаете где
Не разу не сталкивался с неразрешимой проблемой по загрузке dll. Если есть конкретика а студию
А так рад что помогло.
0
8 / 8 / 2
Регистрация: 20.02.2009
Сообщений: 139
28.12.2010, 11:50  [ТС]
Ладно, приду домой, распишу каких я там коней использовал )
0
 Аватар для Mikant
1322 / 995 / 127
Регистрация: 08.12.2009
Сообщений: 1,299
29.12.2010, 02:20
ПОДПИСЫВАЙТЕ СБОРКИ, ГОСПОДА!

прям слов уже нет...
0
8 / 8 / 2
Регистрация: 20.02.2009
Сообщений: 139
29.12.2010, 19:41  [ТС]
В итоге "вэй аут" не сработал, лог ошибки с машины с хп:

See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.ReportViewer.WinForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. Не удается найти указанный файл.
File name: 'Microsoft.ReportViewer.WinForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
at NalogUser.Forms.FormAnalysisData.Initial izeComponent()
at NalogUser.Forms.FormAnalysisData..ctor(C ore Cr)
at NalogUser.FormApp.отчетToolStripMenuItem _Click(Object sender, EventArgs e)
at System.Windows.Forms.ToolStripItem.Raise Event(Object key, EventArgs e)
at System.Windows.Forms.ToolStripMenuItem.O nClick(EventArgs e)
at System.Windows.Forms.ToolStripItem.Handl eClick(EventArgs e)
at System.Windows.Forms.ToolStripItem.Handl eMouseUp(MouseEventArgs e)
at System.Windows.Forms.ToolStripItem.FireE ventInteractive(EventArgs e, ToolStripItemEventType met)
at System.Windows.Forms.ToolStripItem.FireE vent(EventArgs e, ToolStripItemEventType met)
at System.Windows.Forms.ToolStrip.OnMouseUp (MouseEventArgs mea)
at System.Windows.Forms.ToolStripDropDown.O nMouseUp(MouseEventArgs mea)
at System.Windows.Forms.Control.WmMouseUp(M essage& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Mes sage& m)
at System.Windows.Forms.ScrollableControl.W ndProc(Message& m)
at System.Windows.Forms.ToolStrip.WndProc(M essage& m)
at System.Windows.Forms.ToolStripDropDown.W ndProc(Message& m)
at System.Windows.Forms.Control.ControlNati veWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNati veWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callba ck(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

WRN: Assembly binding logging is turned OFF.
To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1.
Note: There is some performance penalty associated with assembly bind failure logging.
To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog].

Использую следующий код для загрузки сборки:
C#
1
2
3
4
5
6
7
8
9
        static void Main()
        {
            //Assembly.LoadFile(Application.StartupPath + NalogUser.Properties.Settings.Default.MicrosoftReportViewerCommon);
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            //Assembly.LoadFile(Application.StartupPath + NalogUser.Properties.Settings.Default.MicrosoftReportViewerCommon);
            Assembly.LoadFile(@Application.StartupPath + NalogUser.Properties.Settings.Default.MicrosoftReportViewerWinForms);
            Application.Run(new FormApp());
        }
Переменная в файле setting.config NalogUser.Properties.Settings.Default.Mi crosoftReportViewerWinForms = \dll\Microsoft.ReportViewer.WinForms.dll

По "Output" листу вижу, что все сборки пытаются загрузиться с GAC
В чем кроется проблема?
0
11 / 6 / 0
Регистрация: 24.12.2010
Сообщений: 22
30.12.2010, 11:40
1 Так что я вижу по колстеку так это то что падает отнють не в Assembly.LoadFile
а падение происходит уже гдето в работаюшей программе.
2 не понятно зачем грузить данную сборку таким образом если она и так в гаке валяется.
3 если та сбока которую вы грузите таким способом есть в гаке, то будет загружена сборка из гака.

учитывая пункт 1, что именно вы делаете когда происходит падение.
по колстеку у вас выполняется какоето действие, вы кудато кликнули.

а зачем таким образом что то грузить что и так есть в стандартном наборе фраемворка начиная с версии 3.5.

что то вы не договариваете

и ешё посмотрете загруженные модули когда у вас этот эксепшен вываливается. там есть эта сборка ? ну я думаю что есть

даёш пример воспроизводяший проблемму

но есть подозрение, что там где вы пытаетесь это запустить нет 3,5 фраемворка. а эта сборка зависит от Microsoft.ReportViewer.Common а эта в свою очереть также имеет зависимости. вы случаем именно так не делаете ?
0
8 / 8 / 2
Регистрация: 20.02.2009
Сообщений: 139
30.12.2010, 13:12  [ТС]
учитывая пункт 1, что именно вы делаете когда происходит падение.
по колстеку у вас выполняется какоето действие, вы кудато кликнули.
Кликаю на кнопку, кторая открывает форму, где используются эти сборки.
и ешё посмотрете загруженные модули когда у вас этот эксепшен вываливается. там есть эта сборка ? ну я думаю что есть
нет не грузится. Самое интересно, что пробую это на двух машинах: на Висте и на 7-ке. На обоих стоит Визуал стидия и стоит соответствующий фрайм ворк.
но есть подозрение, что там где вы пытаетесь это запустить нет 3,5 фраемворка. а эта сборка зависит от Microsoft.ReportViewer.Common а эта в свою очереть также имеет зависимости. вы случаем именно так не делаете ?
На тестовой машине стоит хп, запускаю через виртуал бокс, стоит там фрайм ворк 3.5.
Также пробовал запускать сначала главные сборки а потом зависящие. Комбиную, как могу.
Как то так.
0
11 / 6 / 0
Регистрация: 24.12.2010
Сообщений: 22
30.12.2010, 13:51
вы не могли бы выложить маленький пример в котором воспроизводиться данная проблема
так как проблемы в Assembly.LoadFile нет

и укажите что должно быть на профиле, как я понял враемворк 3,5 там должен стоять

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

Добавлено через 6 минут
Цитата Сообщение от KIMka Посмотреть сообщение
нет не грузится.
как так не грузиться, Assembly.LoadFile отработал без исключения не могла же она испариться.
Прямо таки не вериться что студия в списке "Modules" не показывает данную сборку, после выполнения Assembly.LoadFile
0
 Аватар для Humanitis
176 / 168 / 27
Регистрация: 12.01.2009
Сообщений: 430
30.12.2010, 13:57
Цитата Сообщение от KIMka Посмотреть сообщение
На тестовой машине стоит хп, запускаю через виртуал бокс, стоит там фрайм ворк 3.5.
Microsoft.ReportViewer.WinForms, Version=10.0.0.0
Эта библиотека из 4-го фреймворка.
Положи в папку с приложением эти библиотеки
Microsoft.ReportViewer.WinForms.dll,
Microsoft.ReportViewer.ProcessingObjectM odel.dll,
Microsoft.ReportViewer.Common.dll
и посмотри ,что будет.

P.S. вручную грузить не надо библиотеку
0
8 / 8 / 2
Регистрация: 20.02.2009
Сообщений: 139
30.12.2010, 16:51  [ТС]
Цитата Сообщение от Humanitis Посмотреть сообщение
Microsoft.ReportViewer.WinForms, Version=10.0.0.0
Эта библиотека из 4-го фреймворка.
Положи в папку с приложением эти библиотеки
Microsoft.ReportViewer.WinForms.dll,
Microsoft.ReportViewer.ProcessingObjectM odel.dll,
Microsoft.ReportViewer.Common.dll
и посмотри ,что будет.

P.S. вручную грузить не надо библиотеку
Выше я писал, что так все работает и на всех машинах.
Все необходимые библиотеки находятся в одной папке. Если я кладу какую-то одну главную сборку, то потом ошибка на следующую, и тд...
0
11 / 6 / 0
Регистрация: 24.12.2010
Сообщений: 22
30.12.2010, 18:16
Извиняюсь за автопик. НО
Хочется услышать начальника транспортного цеха.

Можно мааааленькое консольное и Win приложение, которое будет восроизводить данную проблему, и покажет, что именно вы пытаетесь сделать, какую такую проблему надо решить, где необходимо подгружать таким путём Dll, а не добавить их изначально в проект линками ?
0
8 / 8 / 2
Регистрация: 20.02.2009
Сообщений: 139
31.12.2010, 20:38  [ТС]
Создал простенькую консоль, добавил туда две сборки: Microsoft.ReportViewer.Common.dll и Microsoft.ReportViewer.WinForms.dll.
Попытался загрузить их следующим кодом:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string path = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase);
            string pathAss=path + @"\dll\" + "Microsoft.ReportViewer.Common.dll";
            Assembly a = Assembly.LoadFile(pathAss);
            Console.WriteLine("Привет мир!!!"+"\n"+path);
            Console.WriteLine(a.GetName().ToString());
        }
    }
}
Выдает ошибку в строке "Assembly a = Assembly.LoadFile(pathAss);", текст:
Требуется информация об абсолютном пути.
System.ArgumentException was unhandled
Message=Требуется информация об абсолютном пути.
Подробно:
Source=mscorlib
StackTrace:
в System.Security.Util.StringExpressionSet .CreateListFromExpressions(String[] str, Boolean needFullPath)
в System.Security.Permissions.FileIOPermis sion.AddPathList(FileIOPermissionAccess access, AccessControlActions control, String[] pathListOrig, Boolean checkForDuplicates, Boolean needFullPath, Boolean copyPathList)
в System.Security.Permissions.FileIOPermis sion..ctor(FileIOPermissionAccess access, String path)
в System.Reflection.Assembly.LoadFile(Stri ng path)
в ConsoleApplication1.Program.Main(String[] args) в C:\Users\Илья\Documents\Visual Studio 2005\Projects\ConsoleApplication1\Consol eApplication1\Program.cs:строка 16
в System.AppDomain._nExecuteAssembly(Assem bly assembly, String[] args)
в System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
в Microsoft.VisualStudio.HostingProcess.Ho stProc.RunUsersAssembly()
в System.Threading.ThreadHelper.ThreadStar t_Context(Object state)
в System.Threading.ExecutionContext.Run(Ex ecutionContext executionContext, ContextCallback callback, Object state)
в System.Threading.ThreadHelper.ThreadStar t()
InnerException:
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
31.12.2010, 20:38
Помогаю со студенческими работами здесь

Непонимаю что мне показывает Simple Assembly Explorer
Здравствуйте , объясните кому не сложно что это ))) Вроде как код c# , но вот не пойму что всё это ... может литература какая есть ......

(Assembly) Как вызвать из подключаемого файла метод главного?
Подключаю NET-овскую DLL с помощью Assembly.LoadFrom(). С помощью References не катит(мне нужна динамическая подгрузка, имени модулей я...

Не получается загрузить dll, возникает ошибка is a valid assembly or COM component
Всем привет. Не могу загрузить dll, возникает ошибка is a valid assembly or COM component. Решение TlbImp.exe name.dll не помогает....

Запуск приложения на другом компьютере: System.IO.FileNotFoundException: Could not load file or assembly
Chilkat Software Inc У меня нормально всё работает.... Открываю на другом компе, ошибка See the end of this message for details...

Ошибка: error MSB4127: The "EntityDeploy" task could not be instantiated from the assembly (Консоль)
создаю консольное приложение с помощью визарда и запускаю ,оно выдает вот такую ошибку что не так??


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru