簡體   English   中英

如何以編程方式從當前項目中構建和編譯另一個c#項目

[英]How to programatically build and compile another c# project from the current project

程序A:輸出ac#函數,並將該函數插入到另一個c#項目B中的文件(例如,Classifier.cs)中。這些步驟已經實現。

我想知道有沒有辦法以編程方式在項目A中編譯和編譯c#項目B.所以我可以單擊項目A中的一個按鈕,它會自動將新函數插入項目B,構建,編譯項目B.最后啟動新項目B.

謝謝。

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

無需執行新流程。 .NET為我們提供了一種以編程方式調用C#編譯器的方法。 我發現這種技術效果很好:

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

假設您使用的是Visual Studio,則可以對ProjectB.csproj使用運行MSBuild。 這樣你的項目應該與它在Visual Studio中構建的方式相同。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM