Visual Studio 2022 自动化发布操作到 dotnet cli 值得赞扬

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

聪明人!我正在尝试使用 dotnet cli 从 Visual Studio 构建 Jenkis 管道自动化发布步骤。

首先关于 VS 中的发布步骤,他们按下“发布”选项,然后选择所有标志。 all the flags

在詹金斯我跑:

bat ""${env:nugetExeFile}" 恢复 "${env:slnfile}""

蝙蝠

\"${env:dotnet}\" publish -c Release -r win-x86 --framework net6.0 --self-contained true -p:PublishSingleFile=true -p:IncludeAllContentForSelfExtract=true

目前我有一个 .sln 文件和一个 .csproj 其余的 .csproj 项目是

在 VS 代码中有一个标志“发布前删除所有现有文件”我也想添加它,但我找不到它。

当我使用 WinMerge 比较生成的二进制文件时,它们完全不同。提前非常感谢!

我试图在之前指定.sln文件以及.pubxml文件和csproj,但总是出现错误并且文件没有自行发布。现在仍然有错误,但文件确实发布到 bin/release/path 中。

错误消息:错误 NETSDK1099:仅可执行应用程序支持发布到单个文件

.net visual-studio msbuild
1个回答
0
投票

使用

dotnet publish
时需要指定目标 csproj,否则您会得到相当未定义的行为,因为发布在库上没有意义。

二进制文件上的 WinMerge(或 diff)是没有用的,除非您确切知道要查找的内容。 Dll 和 exe 文件在构建之间总是不同的,因为它们有编码在其中的时间戳。

与其要求“在发布之前删除所有现有文件”,不如确保每次都开始一个干净的构建。我确信有一个詹金斯设置可以做到这一点。作为解决方法,您还可以在构建开始时调用

git clean -dfx

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