1

我已经使用CodeDom生成所谓的“Product.cs”类,我的类已经在正确的路径中生成,但我的代码不能完美完整,因为这个“ Product.cs“被排除在我的解决方案之外,我必须将它包含在运行时间我搜索并找到了创建csc.exe和加载程序集的方法,以便在运行时编译我的类,并将其包含在我的解决方案中,我可以在“Product.cs”上工作。编译运行时排除CodeDom生成的类

我正在编写Web应用程序(如MVC)上的Visual Studio 2013的代码。 谢谢你的帮助。

+0

您是否尝试通过添加生成的文件来编辑仅为xml文件的项目文件?检查这也是:https://msdn.microsoft.com/en-us/library/microsoft.build.buildengine.aspx – 2015-03-08 18:45:41

回答

1

它会一直工作只是想看看我的以上意见 如果你想包括类文件只是编辑项目文件它是XML文件,你可以eadily做到这一点。要知道标记PLZ打开项目文件在记事本中,然后使用MSBuild或Whatwver你想建立你的项目。 - 如果您想生成并创建项目,请参阅反射。同时检查:http://www.codeproject.com/Articles/10324/Compiling-code-during-runtime

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();

然后“Product.cs”将成为项目或解决方案中包含的文件,并且可以使用它。

+0

正如你所说,上述是你的问题的正确解决方案。那么,我相信你应该把上面的标记作为一个被接受的答案。 – 2015-03-09 14:25:22

+2

非常感谢Gaurav的回答,它给了我适当的线索来实现我的方式。 – 2015-03-09 22:31:27

+0

它是做这个研究的好经验,我从你的问题中学到了很多东西。不用说谢谢,你总是欢迎!随意问这里任何事情。祝你好运。 – 2015-03-12 07:20:24