Сборка не может найти ссылочную сборку при компиляции в память с помощью CodeDomProvider

Я пытаюсь скомпилировать некоторый код в память во время выполнения, используя CodeDomProvider.

Код, который я компилирую есть ссылка на внешнюю сборку, которую я включаю в параметры, используемые при компиляции кода.

Когда я компилирую в память и пытаюсь использовать отражение на сборке, созданной в надстройке Visual Studio, выдается исключение, говорящее, что это не удается найти сборку, на которую указывает ссылка.

(Исключение)
«Не удалось загрузить один или несколько запрошенных типов. Получите свойство LoaderExceptions для получения дополнительных сведений.»

(LoaderException)
"{" Не удалось загрузить файл или сборку Dynamo.Jiss.Task, Version = 1.0.0.0, Culture = нейтральный, PublicKeyToken = null или одну из его зависимостей. Система не может найти указанный файл. ":" Dynamo.Jiss.Task, Version = 1.0.0.0, Culture = нейтральный, PublicKeyToken = null "}"

Я пробовал ссылаться на сборку из разных мест, используя абсолютный путь.

Тот же самый код отлично работает, если он запускается из консольного приложения, и он также отлично работает в надстройке, если я не компилирую в память.
Удаление ссылки на внешнюю сборку и кода, который ссылается на нее, также работает при компиляции в память, поэтому, вероятно, как описано в исключении, это проблема с загрузкой указанной сборки.

Кто-нибудь знает, почему компиляция в память и ссылки сборка не работает в надстройке?

Есть ли какие-то ограничения в домене приложений, в котором она выполняется, или что-то, о чем мне следует знать? (мое лучшее предположение на данный момент)

Должен ли он находиться в определенной папке? ссылаются с использованием относительного пути? Настройки безопасности? нужно подписать? Любые идеи?


Я пытаюсь создать способ поместить файлы с определенным расширением в проект и позволить надстройке автоматически компилировать его, и если он реализует интерфейс ITask (из внешней сборки), он вызовет метод Setup () это позволяет коду подключаться к событиям Visual Studio и выполнять задачи / сценарии, прослушивая различные события. Таким образом, я могу легко выполнять текстовые шаблоны при изменении другого файла или объединять и уменьшать файлы при различных событиях (документ сохранен, сборка и т. Д.).

Есть ли что-то подобное (чтобы избавить меня от боли)? :)

5
задан Madhur Ahuja 24 July 2011 в 06:14
поделиться