为什么VSCode中的.Net Core CLI将release文件夹放在调试目录

时间:2016-08-17 10:15:12

标签: c# .net-core

我觉得我错过了一些明显的东西,但是搜索谷歌,这个站点和GitHub上的.Net Core SLI问题部分没有立即回复,也没有阅读.Net Core项目的文档。 json格式。

在简单的旧C#项目(常规.Net,而不是Core)中由Visual Studio(而不是VSCode)搭建,通常运行构建会将文件放入

%project root%/bin/Debug 

开箱即用,或

%project root%/bin/Release 

如果您选择发布。

在带.Net Core的VSCode中,默认情况下,将文件放入

%project root%/bin/Debug/netcoreapp1.0.

然而,如果你运行

dotnet publish

在命令行中,它会将文件放在

中的发布文件夹中
%project root%/bin/Debug/netcoreapp1.0. 

产生类似

的结构
%project root%/bin/Debug/netcoreapp1.0/release. 

如果您已指定在project.json中为特定平台目标构建,那么它将类似地将文件放入

%project root%/bin/Debug/netcoreapp1.0/PlatformName.

例如

%project root%/bin/Debug/netcoreapp1.0/win7-x64.

我的问题是,为什么 .Net Core将release文件夹放在debug文件夹中,因为我更喜欢旧的目录结构,有没有办法告诉.Net Core这样做相反,通过一些project.json属性或cli标志来说类似于saycript如何允许你指定一个outDir?

使用' dotnet new'提供的默认hello world项目对此进行测试,我修改后的project.json如下所示:

{
  "version": "1.0.0-*",
  "buildOptions": {
    "debugType": "portable",
    "emitEntryPoint": true
  },
  "dependencies": {},
  "frameworks": {
    "netcoreapp1.0": {
      "dependencies": {
        "Microsoft.NETCore.App": {
          //"type": "platform",
          "version": "1.0.0"
        }
      },
      "imports": "dnxcore50"
    }
  },
  "runtimes": {
    "win7-x64": { }
  }
}

1 个答案:

答案 0 :(得分:3)

根据documentation(粗体是我的):

  

dotnet publish [--framework] [--runtime] [--build-base-path] [ - output] [--version-suffix] [--configuration] []

     

...

     

-c, - configuration [Debug | Release]

     

发布时使用的配置。 默认值为Debug

所以你需要使用:

dotnet publish -c Release

(还有--output参数来指定目标文件夹:文档还说明默认值,与您看到的相匹配)