Сохраняются ли в .dll какие-либо ссылки, добавленные в ваш проект?

#c# #dll #transfer #rainmeter

#c# #dll #передача #rainmeter

Вопрос:

ПРОБЛЕМА
Я создал проект C #, который реализует System.Management.Справочник по автоматизации (позволяющий мне писать команды powershell в моем проекте).
введите описание изображения здесьвведите описание изображения здесь

Я скомпилировал проект и скопировал dll в папку plugins моего приложения Rainmeter, чтобы я мог использовать его вместе с другими DLL, с которыми поставляется Rainmeter. введите описание изображения здесь

Это отлично работает на моей машине (64-разрядная версия); однако я хочу загрузить эту же конфигурацию на другой сервер (также 64-разрядный). Обе машины используют одну и ту же установку .NET framework (4.5).

Согласно этому источнику, я должен иметь возможность просто скопировать папку Rainmeter с включенной dll, и она должна работать без каких-либо проблем (я использую переносимую установку Rainmeter).

Я получаю сообщение об ошибке «System.IO.FileNotFoundException», если я не удалю «SystemVersion.dll » это я создал, когда запускал Rainmeter на другом сервере.
введите описание изображения здесь

ВОПРОС
Поскольку проблема явно связана с добавленной мной dll, я предполагаю, что ссылка не добавляется в dll?

========================================================================= РЕДАКТИРОВАТЬ
Согласно ответу @Hackerman, проблема заключалась в том, что dll не смогла найти мою ссылку. Путь к System.Management.Для загрузки ссылки на автоматизацию на компьютере должна быть установлена powershell версии 3.0.
введите описание изображения здесьНа моем сервере была запущена powershell версии 2.0, но после установки версии 3.0 dll смогла загрузить ссылку, и Rainmeter отобразил мои результаты, как и ожидалось.

Комментарии:

1. Это проект WinForms?

2. @Hackerman Нет, это dll. Тип вывода — это библиотека классов.

3. Хорошо, теперь я лучше понимаю …. вы создали плагин Rainmeter, но когда вы включаете свою dll в папку плагинов, Rainmeter не работает, верно?

4. @Hackerman Это правильно.

5. Можете ли вы опубликовать полное сообщение об ошибке…. Я думаю, что, возможно, ваша dll не может найти System.Management.Automation сборку… и отвечая на ваш вопрос, нет, когда вы создаете свою dll, она не встраивает указанную dll…

Ответ №1:

Когда вы создаете свой class library , ссылки не попадают embedded в ваш финал dll . То System.IO.FileNotFoundException , что вы получаете, связано с тем, что ваша dll не может загрузить System.Managem‌​ent.Automation.dll ссылку на конечный сервер. Установка PowerShell 3.0 на сервер должна решить проблему.