Dotnet 发布与 Visual Studio 中的发布在 csproj 文件中生成不同的 $(PublishDir)

问题描述 投票:0回答:2

我遇到一个问题,即

$(PublishDir)
值会有所不同,这取决于我是使用命令行发布
dotnet publish -c release
还是在 Visual Studio 中发布。

使用命令行,PublishDir 将是相对路径,使用 Visual Studio,publishDir 将是绝对路径。

这是显示我的问题的预发布目标。基本上我正在尝试编译我的 Angular 应用程序并将输出放在

$(PublishDir)/wwwroot
文件夹中。

有什么办法可以强制

$(PublishDir)
值始终是绝对路径吗?

.net angular visual-studio-2019
2个回答
0
投票

您是否尝试过始终使用 Directory.build.props 文件为 PublishDir 指定相对路径。一般来说,恕我直言,应该始终在构建中使用解决方案或项目目录中的相对路径。 Directory.build.props 文件在大多数常见构建文件之前处理,通常允许您覆盖几乎任何属性...


0
投票

我遇到了同样的问题,我只需要为 dotnet CLI 指定 PublishProfile 即可正确管理相对路径。

如果您没有发布配置文件,请转到项目树上的项目并单击“发布..”按钮。它会提示一个向导来创建一个发布配置文件,你可以创建一个“文件夹”发布配置文件来测试它。

添加此发布配置文件后,扩展名为 *.pubxml 的文件将添加到“YourProject\Properties\PublishProfiles”

此时您只需在 dotnet 命令属性中指定发布配置文件,如下所示:

dotnet publish -c Release -p:"PublishProfile=FolderProfile"

我也在使用 $(PublishDir) 和 AfterPublish Target,这适用于 dotnet CLI。

© www.soinside.com 2019 - 2024. All rights reserved.