在运行时编译排除CodeDom生成的类

时间:2015-03-08 18:04:37

标签: compiler-construction code-generation .net-assembly codedom

我已经使用CodeDom来生成所谓的" Product.cs"这个类,我的类已经生成了正确的路径但是我的代码不能完美和完整,因为这样" Product.cs& #34;从我的解决方案中排除,我必须将其包含在运行时我搜索并找到创建csc.exe并加载程序集的方法,以便在运行时编译我的类并将其包含在我的解决方案中之后我可以继续工作" Product.cs"。

我正在使用Visual Studio 2013在Web应用程序(如MVC)上编写代码。 感谢您提前获取任何帮助。

2 个答案:

答案 0 :(得分:1)

它会为yoy工作只是尝试看到我的上述评论 - 如果你想要包含类文件只需编辑项目文件,它就是你可以随便做的xml文件。要知道标签plz在记事本中打开项目文件,然后使用msbuild或whatwver你想建立你的项目。 - 如果你想生成和创建项目看到反射。另请查看:http://www.codeproject.com/Articles/10324/Compiling-code-during-runtime

答案 1 :(得分:1)

要包含排除文件,特别是当它由代码生成方法(如CodeDom或EnvDTE等)生成时,应遵循:

  1. 右键单击解决方案上的参考文献
  2. 选择程序集 - > Microsoft.Build
  3. 编写此类代码:

    var p = new Microsoft.Build.Evaluation.Project(@"D:\MVCNHibernate\MVCNHibernate\MVCNHibernate.csproj");
     p.AddItem("Compile", @"D:\MVCNHibernate\MVCNHibernate\Entities\Product.cs");
     p.Save();
     p.Build();
  4. 然后“Product.cs”将成为您在项目或解决方案中包含的文件,并且可以使用它。