.net — загрузка сборки C ++ / CLI FileNotFoundException

Я делаю плагин для фотошопа с использованием C ++ / CLI. Некоторые файлы в проекте скомпилированы в собственный код, а один файл — в управляемый код. Из-за этого я не могу добавить ссылку на сборку на уровне проекта, а скорее на уровне файла через #using заявление.

Я ссылался System.dll, Windows.dll, PresentationFramework.dll а также WindowsBase.dll успешно. (Есть некоторые проблемы с intellisense, который не хочет загружать метаданные, но компилирует без ошибок. Я решил проблему с intellisense, указав полное имя сборки.)

Тем не менее, я не могу добавить ссылку на мою собственную сборку без фреймворка. Когда я загружаю плагин в Photoshop и отлаживаю его, я получаю следующую ошибку>

Произошло необработанное исключение типа «System.IO.FileNotFoundException» в неизвестном модуле.

Дополнительная информация: Не удалось загрузить файл или сборку ‘ColorPickerControl, Version = 1.0.0.0, Culture = нейтральный, PublicKeyToken = 2317994184a7a708’ или одну из ее зависимостей. Система не может найти указанный файл.

Я пытался изменить целевой фрейм моей библиотеки, чтобы сделать сборку общей (общедоступной) — следовательно PublicKeyToken не является нулевым — для возврата имени других сборок к их короткому имени (я изменил их, потому что intellisense не загружал метаданные). Не сработало

Какие-либо предложения? Это может быть проблемой с целевой структурой, но я не знаю, что следует указывать в качестве целевой структуры. Это C ++ / CLI — нет диалога свойств, как в C #, где вы можете легко выбрать целевой фреймворк.

Мой код:

#using <System.dll>
#using <PresentationCore.dll>
#using <PresentationFramework.dll>
#using <WindowsBase.dll>#using <C:\Users\Bogdan\Desktop\ColorPickerControl.dll>using namespace System;
using namespace System::Windows;
using namespace System::Windows::Controls;
using namespace System::Windows::Media;
//using namespace ColorPickerControlNamespace;char __cdecl fManaged2(const char* input)
{Window^ w = gcnew Window();
Label^ l = gcnew Label();
l->Content = "This works!";
l->Background = Brushes::Orange;
TextBox^ txt = gcnew TextBox();
txt->Width = 300;
txt->Height = 25;
Grid^ g = gcnew Grid();
g->Children->Add(l);
g->Children->Add(txt);ColorPickerControlNamespace::ColorPickerControl^ c = gcnew ColorPickerControlNamespace::ColorPickerControl();w->Content = g;
w->ShowDialog();

Byte bb = Convert::ToByte(txt->Text);
return bb;
}

1

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]