我已经使用CodeDom生成所谓的“Product.cs”类,我的类已经在正确的路径中生成,但我的代码不能完美完整,因为这个“ Product.cs“被排除在我的解决方案之外,我必须将它包含在运行时间我搜索并找到了创建csc.exe和加载程序集的方法,以便在运行时编译我的类,并将其包含在我的解决方案中,我可以在“Product.cs”上工作。编译运行时排除CodeDom生成的类
我正在编写Web应用程序(如MVC)上的Visual Studio 2013的代码。 谢谢你的帮助。
我已经使用CodeDom生成所谓的“Product.cs”类,我的类已经在正确的路径中生成,但我的代码不能完美完整,因为这个“ Product.cs“被排除在我的解决方案之外,我必须将它包含在运行时间我搜索并找到了创建csc.exe和加载程序集的方法,以便在运行时编译我的类,并将其包含在我的解决方案中,我可以在“Product.cs”上工作。编译运行时排除CodeDom生成的类
我正在编写Web应用程序(如MVC)上的Visual Studio 2013的代码。 谢谢你的帮助。
它会一直工作只是想看看我的以上意见 如果你想包括类文件只是编辑项目文件它是XML文件,你可以eadily做到这一点。要知道标记PLZ打开项目文件在记事本中,然后使用MSBuild或Whatwver你想建立你的项目。 - 如果您想生成并创建项目,请参阅反射。同时检查:http://www.codeproject.com/Articles/10324/Compiling-code-during-runtime
要包括特别是当它是由代码生成的方法,如的CodeDOM或EnvDTE和等产生排除文件,应该遵循:
写这样的代码:
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”将成为项目或解决方案中包含的文件,并且可以使用它。
正如你所说,上述是你的问题的正确解决方案。那么,我相信你应该把上面的标记作为一个被接受的答案。 – 2015-03-09 14:25:22
非常感谢Gaurav的回答,它给了我适当的线索来实现我的方式。 – 2015-03-09 22:31:27
它是做这个研究的好经验,我从你的问题中学到了很多东西。不用说谢谢,你总是欢迎!随意问这里任何事情。祝你好运。 – 2015-03-12 07:20:24
您是否尝试通过添加生成的文件来编辑仅为xml文件的项目文件?检查这也是:https://msdn.microsoft.com/en-us/library/microsoft.build.buildengine.aspx – 2015-03-08 18:45:41