我遇到一个问题,即
$(PublishDir)
值会有所不同,这取决于我是使用命令行发布dotnet publish -c release
还是在 Visual Studio 中发布。
使用命令行,PublishDir 将是相对路径,使用 Visual Studio,publishDir 将是绝对路径。
这是显示我的问题的预发布目标。基本上我正在尝试编译我的 Angular 应用程序并将输出放在
$(PublishDir)/wwwroot
文件夹中。
有什么办法可以强制
$(PublishDir)
值始终是绝对路径吗?
您是否尝试过始终使用 Directory.build.props 文件为 PublishDir 指定相对路径。一般来说,恕我直言,应该始终在构建中使用解决方案或项目目录中的相对路径。 Directory.build.props 文件在大多数常见构建文件之前处理,通常允许您覆盖几乎任何属性...
我遇到了同样的问题,我只需要为 dotnet CLI 指定 PublishProfile 即可正确管理相对路径。
如果您没有发布配置文件,请转到项目树上的项目并单击“发布..”按钮。它会提示一个向导来创建一个发布配置文件,你可以创建一个“文件夹”发布配置文件来测试它。
添加此发布配置文件后,扩展名为 *.pubxml 的文件将添加到“YourProject\Properties\PublishProfiles”
此时您只需在 dotnet 命令属性中指定发布配置文件,如下所示:
dotnet publish -c Release -p:"PublishProfile=FolderProfile"
我也在使用 $(PublishDir) 和 AfterPublish Target,这适用于 dotnet CLI。