2017-04-21 41 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