C# Dotnet发布不';发布web api时不创建文件夹

C# Dotnet发布不';发布web api时不创建文件夹,c#,asp.net,docker,dotnet-cli,C#,Asp.net,Docker,Dotnet Cli,我一直在尝试学习有关如何将asp.net Web API放置到docker映像上的多个教程。在大多数情况下,它们都使用docker文件,其中执行以下命令dotnet[csproj name]-c Release-o out,然后最终将信息从该文件夹复制到另一个文件夹。但是,我不断发现文件夹未找到的问题。所以我决定在本地使用这个命令,令我惊讶的是,没有生成out文件夹,也没有构建任何东西 当我们查看上的dotnet发布文档时,我们可以看到它说: 将应用程序及其依赖项打包到文件夹中,以便部署到宿主系

我一直在尝试学习有关如何将asp.net Web API放置到docker映像上的多个教程。在大多数情况下,它们都使用docker文件,其中执行以下命令
dotnet[csproj name]-c Release-o out
,然后最终将信息从该文件夹复制到另一个文件夹。但是,我不断发现文件夹未找到的问题。所以我决定在本地使用这个命令,令我惊讶的是,没有生成out文件夹,也没有构建任何东西

当我们查看上的
dotnet发布
文档时,我们可以看到它说:

将应用程序及其依赖项打包到文件夹中,以便部署到宿主系统

-o|--output
指定输出目录的路径。如果未指定,则对于依赖于框架的部署,默认为./bin/[configuration]/[framework]/publish/;对于自包含的部署,默认为./bin/[configuration]/[framework]/[runtime]/publish/。如果路径是相对的,则生成的输出目录是相对于项目文件位置的,而不是相对于当前工作目录的

是的,我已经尝试了几乎所有的解决方案


在我看来,这个命令应该创建一个新文件夹,所有已发布的文件都放在其中。所以我的问题是:我弄错了吗?或者这里有问题吗?问题的解决方案是什么?

是的,它将创建输出文件夹,但是在.NET Core 3.0工具之前,任何非绝对路径都是相对于项目目录解释的

因此,在3.0之前,
dotnet publish subdir(project.csproj-o otherdir
将创建一个
subdir/otherdir
目录


还要注意,
dotnet publish
将在其输出中打印它发布到的路径。

Dunno。它应该创建一个文件夹:
dotnet publish。\Proj.csproj--output o-c Release
创建一个名为“o”的目录。这并没有真正解决我的问题,我找到了另一种方法来完成我想做的事情(不使用dotnet CLI)。但还是要感谢您。与3.0之前的行为的差异也没有记录在案,导致自动生成中缺少文件,直到大量故障排除。。。