库中的代码编译:当组件位于托管库的项目中时,如何向组件添加DLL引用?

时间:2011-04-27 13:46:20

标签: .net compiler-construction

我正在编写一个解析和编译Razor模板的类库(比如: lib )。类库将在包含原始Razor模板的项目(例如: proj )中引用。

类库引用了一个3d派对组件(比如: 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 文件夹中时,找不到 comp dll。 proj 也没有 / release 文件夹,因为它是一个网站。

如何在项目托管库中添加对3d party组件的引用?

1 个答案:

答案 0 :(得分:3)

在添加引用时,指定第三方程序集的完整路径(例如@“C:\ App \ bin \ 3rdpartycomp.dll”),因为当没有路径的引用时,编译器只查看框架目录(甚至不是GAC)指定。您可以使用Server.MapPath获取bin目录的位置。