我觉得我错过了一些明显的东西,但是搜索谷歌,这个站点和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": { }
}
}
答案 0 :(得分:3)
根据documentation(粗体是我的):
dotnet publish [--framework] [--runtime] [--build-base-path] [ - output] [--version-suffix] [--configuration] []
...
-c, - configuration [Debug | Release]
发布时使用的配置。 默认值为Debug 。
所以你需要使用:
dotnet publish -c Release
(还有--output
参数来指定目标文件夹:文档还说明默认值,与您看到的相匹配)