首页 > 解决方案 > 发布 Web api 时,Dotnet publish 不创建文件夹

问题描述

我一直在尝试遵循多个示例)教程,了解如何将 asp.net Web API 放置到 docker 图像上。并且几乎所有这些都使用一个 docker 文件,其中完成了以下命令dotnet [csproj name] -c Release -o out,然后最终将信息从这里复制到另一个文件夹。但是,我一直遇到找不到文件夹的问题。所以我决定在本地使用这个命令,令我惊讶的是,没有生成任何 out 文件夹,也没有构建任何东西。

当我们查看它的文档时dotnet publish我们可以看到它说以下内容:

将应用程序及其依赖项打包到一个文件夹中,以便部署到托管系统。

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

是的,我从这里尝试了几乎所有的解决方案。

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

标签: c#asp.netdockerdotnet-cli

解决方案


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

所以直到3.0,dotnet publish subdir(project.csproj -o otherdir才会创建subdir/otherdir目录。

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


推荐阅读