Tôi có một giải pháp với hai hội đồng, một trong số này được gọi là Miền và chứa một lớp Sách và lớp Tác giả.Tệp siêu dữ liệu 'Domain.dll' không thể tìm thấy khi sử dụng CSharpCodeProvider tham chiếu dự án
Tôi muốn tạo động một lớp kế thừa từ lớp Sách. Dưới đây là mã của tôi:
public Book CreateBookProxy(Book book)
{
CSharpCodeProvider cscp = new CSharpCodeProvider(new Dictionary<String, String> { { "CompilerVersion", "v3.5" } });
var parameters = new CompilerParameters(new[] { "mscorlib.dll", "System.Core.dll", "Domain.dll" }, "Proxies.dll", false);
parameters.GenerateExecutable = false;
var compileUnit = new CodeCompileUnit();
var ns = new CodeNamespace("Proxies");
compileUnit.Namespaces.Add(ns);
ns.Imports.Add(new CodeNamespaceImport("System"));
ns.Imports.Add(new CodeNamespaceImport("Domain"));
var classType = new CodeTypeDeclaration("BookProxy");
classType.Attributes = MemberAttributes.Public;
classType.BaseTypes.Add(new CodeTypeReference(typeof(Book)));
ns.Types.Add(classType);
var results = cscp.CompileAssemblyFromDom(parameters, compileUnit);
List<string> errors = new List<string>();
errors.AddRange(results.Errors.Cast<CompilerError>().Select(e => e.ErrorText));
return Activator.CreateInstance(Type.GetType("Proxies.BookProxy, Proxies")) as Book;
}
Tuy nhiên tôi nhận được lỗi sau:
Metadata file 'Domain.dll' could not be found
Domain.dll được tham chiếu trong dự án bắt đầu của tôi lên để nó tồn tại trong thư mục bin tại thời gian chạy.
Thú vị Assembly.Load ("Domain.dll"); ném một FileNotFoundException
Làm cách nào để giải quyết vấn đề này?
Đâu là DLL? – SLaks
Đó là một phần của giải pháp và nó tồn tại trong thư mục bin lúc chạy – Liath