2017-04-21 39 views
2

我的.net核心應用程序變得越來越驚人,所有的兄弟都想使用它。我需要給他們一個安全的方式來讓項目運行,以及一個在路上添加發布任務的策略。使用dotnet cli編寫任務

現在,由於我在this questionthis question中收到的幫助,我使用以下命令運行我的應用程序。

我喜歡它,如果我可以使用阿拉NPM腳本的東西更簡單,也許自定義任務讓我的開發者:

dotnet run dev 

我知道有通過基礎設施來支持這種事情在.csproj文件中的msbuild,但該文檔還沒有爲我工作。

+0

。你知道答案嗎? –

+0

這取決於哪一個選項對您最有意義。我不明白爲什麼我應該在這裏重複文檔。 – svick

+0

感謝您的幫助@svick –

回答

1

Nodejs擁有令人驚歎的cli和腳本功能,這就是我們在我們的項目中使用的devops工具。

只需添加的package.json使用腳本:npm start或:npm run start,你可以,如果你想添加噸腳本

{ 
    scripts : { 
    start: "dotnet watch run --environment Development", 
    } 
} 

現在你可以開始使用你的應用程序。

如果你想要更多的自由讓開發者自己選擇看看how to make a cli tool。它非常容易,我覺得使用腳本語言給予更多的自由,然後使用任何msbuild/C#代碼工具。和cli arguments parsing npm package

這當然需要每個開發者都安裝節點。

我們在命令行中做了這樣的事情:ourAppName start --watch --environment Development --config Debug(ofc這些是默認標誌)。 使用nodejs,您可以產生新進程併爲這些進程提供新的環境變量,因此易於覆蓋,即使appsettings this way

+0

哈哈我喜歡這個答案,但我真的很失望。 .net核心團隊真的構建了一個不完整的系統嗎? –

+2

@MatthewJamesDavis大項目的事情是,你想用你的工具來做事情,你不能簡單地使用配置,所以你自己製作工具(編程)。但是,如果你想簡單地創建一個run.bat並在那裏添加你的命令,告訴人們雙擊該文件。 (最好讓程序員學習dotnet CLI工具的工作原理) –

2

一個選擇是使用flubu(流利的生成器)。這是一個開源的C#庫,我們編寫它用於構建項目並使用C#代碼執行部署腳本。

更多flubu可以在這裏找到:choice-for-build-tool-msbuild-nant-or-something-else

您的特定情況下,你必須寫這樣的事:

public class BuildScript : DefaultBuildScript 
{ 
    protected override void ConfigureTargets(ITaskContext session) 
    { 
     context.CreateTarget("run.dev") 
       .AddCoreTask(x => x.Restore()) //// Optional to restore cli tool watch 
       .AddCoreTask(x => x.ExecuteDotnetTask("watch") 
        .WithArguments("run") 
        .WithArguments("--enviroment", "Development")); 
    } 
} 

然後運行您將執行命令腳本:dotnet flubu run.dev

更新:

您也加入到目標:.SetAsDefault()

然後,你可以用命令,如果這些文檔回答我的問題,顯然這一切執行腳本dotnet flubu