发布Web API时Dotnet发布不会创建文件夹

时间:2018-10-19 13:38:50

标签: c# asp.net docker dotnet-cli

我一直在尝试 multiple example)教程,该教程有关如何将asp.net Web API放置到docker映像上。并且几乎所有人都使用docker文件,在其中执行以下命令dotnet [csproj name] -c Release -o out,然后最终将信息从该文件复制到另一个文件夹。但是,我一直遇到找不到该文件夹​​的问题。因此,我决定在本地使用此命令,令我惊讶的是,从未生产过out文件夹,也未构建任何东西。

当我们查看itdotnet publish的文档时,我们看到它显示以下内容:

  

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

  

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

是的,我已经尝试了here中的每种解决方案。

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

1 个答案:

答案 0 :(得分:1)

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

因此,直到3.0,dotnet publish subdir(project.csproj -o otherdir将创建一个subdir/otherdir目录。

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