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

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

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

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

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

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

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

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

1 ответ

Решение

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

Другие вопросы по тегам