我正在编写一个解析和编译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组件的引用?
答案 0 :(得分:3)
在添加引用时,指定第三方程序集的完整路径(例如@“C:\ App \ bin \ 3rdpartycomp.dll”),因为当没有路径的引用时,编译器只查看框架目录(甚至不是GAC)指定。您可以使用Server.MapPath获取bin目录的位置。