Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
 Аватар для ndrnesterov
4 / 4 / 3
Регистрация: 28.11.2017
Сообщений: 107

Программное подключение dll

16.03.2020, 11:14. Показов 2201. Ответов 8

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

Есть файл GuardAgent2.dll
Для того, чтобы с ним работать, я его добавляю через ссылки и указываю его в using:
C#
1
using GuardAgent2;

Но вот в чем сложность... Этот файл GuardAgent2.dll я хочу расположить в папке с исполняемым файлом... А это значит, что при копировании программы в другую папку или на другой ПК, будет меняться путь к GuardAgent2.dll.

Например, проект лежит в C:\Project, где есть два файла: app.exe, GuardAgent2.dll.
Теперь я перемещаю проект в C:\Program Files\Project, после чего прогамма не запускается, т.к. не может найти GuardAgent2.dll.

Как я могу менять путь ссылки к GuardAgent2.dll? Нужно что-то типа такого:
C#
1
using GuardAgent2 = @"C:\Program Files\Project\GuardAgent2.dll";
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.03.2020, 11:14
Ответы с готовыми решениями:

Подключение сторонней DLL. Нужно, чтобы программа могла работать с разными версиями dll
Есть dll с неким драйвером для фискального регистратора. Требуется прицепить ее к программе на C#. Проблема в том, что эти драйвера...

Подключение dll из ресурсов внутри другой dll
Здравствуйте! Есть сторонняя dll и собственная dll. Собственная dll написана для удобной работы со сторонней dll. Обе dll приходится...

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

8
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,574
16.03.2020, 11:47
Цитата Сообщение от ndrnesterov Посмотреть сообщение
Например, проект лежит в C:\Project, где есть два файла: app.exe, GuardAgent2.dll.
Теперь я перемещаю проект в C:\Program Files\Project, после чего прогамма не запускается, т.к. не может найти GuardAgent2.dll.
С чего вдруг она его не может найти если вы оба файла перемещаете? Поиск всегда идет в текущей папке если не указано иное...
0
 Аватар для ndrnesterov
4 / 4 / 3
Регистрация: 28.11.2017
Сообщений: 107
16.03.2020, 11:57  [ТС]
Цитата Сообщение от Someone007 Посмотреть сообщение
Поиск всегда идет в текущей папке если не указано иное
В ссылке указывается полный путь(
Миниатюры
Программное подключение dll  
0
Эксперт .NET
 Аватар для Даценд
5878 / 4755 / 2939
Регистрация: 20.04.2015
Сообщений: 8,361
16.03.2020, 12:08
Лучший ответ Сообщение было отмечено ndrnesterov как решение

Решение

Цитата Сообщение от ndrnesterov Посмотреть сообщение
В ссылке указывается полный путь(
И что?
Все будет работать без изменения путей ссылок. После сборки проекта копия библиотеки появится в выходной папке.
Только нужно убедиться, что в свойствах ссылки установлено: Копировать локально (Copy Local) = true
1
 Аватар для ndrnesterov
4 / 4 / 3
Регистрация: 28.11.2017
Сообщений: 107
16.03.2020, 12:21  [ТС]
Цитата Сообщение от Даценд Посмотреть сообщение
Копировать локально (Copy Local) = true
Да, это значение установлено.

Сейчас опишу все свои действия.

Я добавил эту dll в ресурсы. При запуске программы, эта dll копируется из ресурсов в папку lib. После я делаю необходимую манипуляцию в командной строке:
Кликните здесь для просмотра всего текста

@ECHO ON
%SystemRoot%\Microsoft.NET\Framework\v2. 0.50727\RegAsm.exe {path + @"\GuardAgent2.dll"} /tlb /codebase
@ECHO OFF


Далее мне нужно программно как-то подключить эту dll, чтобы я мог с ней работать...
В этом сложность...
0
Эксперт .NET
 Аватар для Даценд
5878 / 4755 / 2939
Регистрация: 20.04.2015
Сообщений: 8,361
16.03.2020, 12:45
Цитата Сообщение от ndrnesterov Посмотреть сообщение
делаю необходимую манипуляцию в командной строке
а в чем задача манипуляции?
0
548 / 355 / 120
Регистрация: 17.08.2014
Сообщений: 1,351
16.03.2020, 12:58
ndrnesterov, библиотека может находиться в любой папке, главное зарегистрировать ее в кеше сборок, для этого используйте Gacutil.exe, а второй вариант вы знаете, располагать сборку в папке с программой, есть еще два способа загрузки сборок, это динамическая загрузка сборки где вы указываете путь, для этого гуглите OnResolveAssembly. Либо использовать технологию Mef(Для ваших сборок).
1
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,574
16.03.2020, 14:58
Лучший ответ Сообщение было отмечено Почтальон как решение

Решение

У него тут похоже не просто .NET сборка, а COM, её надо регать в новом месте каждый раз по идее...
1
 Аватар для ndrnesterov
4 / 4 / 3
Регистрация: 28.11.2017
Сообщений: 107
20.03.2020, 15:47  [ТС]
Цитата Сообщение от Someone007 Посмотреть сообщение
а COM, её надо регать в новом месте каждый раз по идее...
Да, верно)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.03.2020, 15:47
Помогаю со студенческими работами здесь

Программное подключение к рабочему столу
Собственно, как, зная ip, логин пользователя и пароль, подключиться к серверу, ну, или, как минимум - узнать, можно ли подключиться. ...

Подключение dll к другой dll
Возникла проблема, написал на C# библиотеку для своей программы, а эта библиотека вызывает другую библиотеку xNet, при запуске программа...

Подключение dll и dll.config
Всем привет. Подключаю dll к проекту статически, через References. dll добавляется нормально. В коде пишу using MyDll; и создаю объект из...

Программное подключение к WiFi точке
Здравствуйте, понадобилось мне реализовать программное подключение к открытой WiFi точке, полазил в интернете и нашел хорошую статейку с...

Программное подключение к WiFi точке
Замысел следующий: Получить список Wi-Fi сетей. Подключение к сети по паролю. Получить статус подключения. Вот...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru