In-code-compile in library: Как добавить ссылку DLL на компонент, когда компонент находится в проекте, где размещена библиотека? - PullRequest
3 голосов
/ 27 апреля 2011

Я пишу библиотеку классов (скажем: lib ), которая анализирует и компилирует шаблоны Razor.Библиотека классов будет указана в проекте (скажем: proj ), который содержит необработанные шаблоны Razor.

Библиотека классов ссылается на компонент сторонних разработчиков (скажем, comp ), который я не могу (по лицензии) упаковать в библиотеку.Это не проблема, потому что proj всегда будет содержать ссылку comp .

Однако внутри lib Мне нужно добавить comp для указанных сборок:

var outputAssemblyName = Path.GetTempPath() + Guid.NewGuid().ToString("N") + ".dll";
CompilerParameters compilerParameters = new CompilerParameters(ReferencedAssemblies, outputAssemblyName);
compilerParameters.ReferencedAssemblies.Add("System.dll");
compilerParameters.ReferencedAssemblies.Add("System.Core.dll");
compilerParameters.ReferencedAssemblies.Add("3dpartycomp.dll"); //<<<<<<<<<<<<

Файл comp dll, однако, не найден, если он находится в папке / bin проектируемый .Также proj не имеет папки / release , потому что это веб-сайт.

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

1 Ответ

3 голосов
/ 27 апреля 2011

При добавлении ссылки укажите полный путь к сторонним сборкам (например, @ "C: \ App \ bin \ 3rdpartycomp.dll"), так как компилятор ищет только в каталоге платформы (даже в GAC), когда ссылка без пути указано. Вы можете использовать Server.MapPath для получения местоположения каталога bin.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...