4im*_*ble 19 .net .net-core dotnet-cli
我在它自己的文件夹中创建了一个解决方案和一个webapi项目.然后我将项目添加到解决方案中.
我希望能够在dotnet run
不指定项目的情况下运行,方法是设置默认值(就像我在Visual Studio中一样)
CLI可能还是不可行?
Mar*_*ich 15
目前,这是不可能的dotnet run
.
dotnet run
确实调用msbuild目标进行恢复和构建,但查询实际程序和参数以从新的静态评估运行,这意味着即使您将自定义构建逻辑添加到解决方案(=>正在构建的"项目"),没有机会运行自定义的msbuild逻辑来从其他项目中获取这些属性.(人们仍然可以硬编码构建的可执行文件的相对路径,但这非常麻烦且不够灵活)
这意味着最好的方法是创建dotnet run -p my/project
为你调用正确命令的scipts(.bat,.sh),而不需要你做太多的输入.
nil*_*arp 12
如果您在 *nix 系统上,Makefile 可以解决所有重复输入问题。
我通常会创建一个高级别Makefile
来缩短常用命令。
build:
dotnet build
clean:
dotnet clean
restore:
dotnet restore
watch:
dotnet watch --project src/Main/Main.csproj run
start:
dotnet run --project src/Main/Main.csproj
Run Code Online (Sandbox Code Playgroud)
上述命令与干净的架构设置有关,其中文件结构大致如下树所示。
-- root
|-- src
| |-- Application
| |-- Core
| |-- Infrastructure
| |-- Main
|-- tests
| |-- Application.IntegrationTests
| |-- Core.UnitTests
| |-- Infrastructure.UnitTests
|-- API.sln
|-- Makefile
Run Code Online (Sandbox Code Playgroud)
通过该设置,我可以运行类似的命令
make start
Run Code Online (Sandbox Code Playgroud)
似乎还没有dotnet
配置文件 - 很高兴看到一个.dotnetconfig.json
或类似的文件,否则扩展 SLN 文件以支持dotnet
命令的默认项目。按照 @MartinUllrich 的思路,假设您安装了 Node.js,只需创建一个package.json
并调用npm start
. 同样的模式也适用于其他脚本引擎。
{
"name": "dotnet-run-default-project",
"private": true,
"version": "1.0.0",
"scripts": {
"start": "dotnet run -p .\\src\\MyApplication.Web\\"
}
}
Run Code Online (Sandbox Code Playgroud)
npm 启动
归档时间: |
|
查看次数: |
5565 次 |
最近记录: |