【问题标题】:How to programatically build and compile another c# project from the current project如何以编程方式从当前项目构建和编译另一个 c# 项目
【发布时间】:2018-04-30 19:47:06
【问题描述】:

程序A:输出一个c#函数,并将该函数插入到另一个c#项目B中的文件(例如Classifier.cs)中。这些步骤已经实现。

我想知道有什么方法可以在项目A中以编程方式构建和编译c#项目B。所以我可以点击项目A中的一个按钮,它会自动将新功能插入项目B,构建,编译项目B. 最后启动新项目 B。

谢谢。

【问题讨论】:

    标签: c#


    【解决方案1】:

    现在有很多 .NET 编译程序集已过时。 对于编译,请使用 Microsoft.Build。

    首先,添加以下引用:

    • Microsoft.Build
    • Microsoft.Build.Engine

    其次,导入:

    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】:

      无需执行新进程。 .NET 为我们提供了一种以编程方式调用 C# 编译器的方法。我发现这种技术效果很好:

      http://blogs.msdn.com/b/dohollan/archive/2010/08/09/programmatically-invoke-the-c-compiler.aspx

      【讨论】:

      【解决方案3】:

      假设您使用的是 Visual Studio,您可以对您的 ProjectB.csproj 运行 MSBuild。这样,您的项目构建应该与在 Visual Studio 中构建的方式相同。

      【讨论】:

        猜你喜欢
        • 2016-05-04
        • 1970-01-01
        • 2020-02-26
        • 2020-03-22
        • 1970-01-01
        • 2023-03-28
        • 2011-07-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多