#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.Management.Automation.dll
ссылку на конечный сервер. Установка PowerShell 3.0
на сервер должна решить проблему.