程序A:输出一个c#函数,并将该函数插入到另一个c#项目B中的文件(例如,Classifier.cs)中。这些步骤已经实现。
我想知道有没有办法在项目A中以编程方式构建和编译c#项目B.所以我可以单击项目A中的一个按钮,它会自动将新函数插入到项目B中,构建,编译项目B.最后启动新项目B.
谢谢。
答案 0 :(得分:1)
无需执行新流程。 .NET为我们提供了一种以编程方式调用C#编译器的方法。我发现这种技术效果很好:
http://blogs.msdn.com/b/dohollan/archive/2010/08/09/programmatically-invoke-the-c-compiler.aspx
答案 1 :(得分:1)
现在有很多.NET的编译程序集已经过时了。 要进行编译,请使用Microsoft.Build。
首先,添加以下参考文献:
其次,导入:
using Microsoft.Build.Evaluation;
最后,写下这段代码:
var configuration = "Release";
var projectDirectory = @"C:\blabla";
var collection = ProjectCollection.GlobalProjectCollection;
var project = collection.LoadProject($@"{projectDirectory}\MyProject.csproj");
project.SetProperty("Configuration", configuration);
project.Build();
答案 2 :(得分:-1)
假设您正在使用Visual Studio,您可以对ProjectB.csproj使用运行MSBuild。这样你的项目应该与它在Visual Studio中的构建方式相同。