提问人:YesWoman 提问时间:11/10/2023 最后编辑:PMFYesWoman 更新时间:11/10/2023 访问量:25
Visual Studio 2022 向 dotnet cli 发布操作的自动化值得称赞
Automation of Visual Studio 2022 publish action to dotnet cli commends
问:
聪明人!我正在尝试使用 dotnet cli 从 Visual Studio 构建 Jenkis 管道自动发布步骤。
首先,关于VS中的发布步骤,他们按选项发布,然后选择所有标志。所有标志
在 jenkins 中,我运行:
bat "\"${env:nugetExeFile}\" restore \"${env:slnfile}\""
bat `\"${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:仅可执行应用程序支持发布到单个文件
答:
0赞
PMF
11/10/2023
#1
使用 时需要指定目标 csproj,否则您将获得相当不确定的行为,因为 publish 在库上没有意义。dotnet publish
二进制文件上的 WinMerge(或 diff)是无用的,除非您确切知道要查找的内容。Dll 和 exe 文件在生成之间总是不同的,因为它们具有编码的时间戳。
与其要求“在发布之前删除所有现有文件”,不如确保每次都启动干净的构建。我敢肯定有一个 jenkins 设置可以做到这一点。作为解决方法,您也可以在构建开始时调用。git clean -dfx
评论
0赞
YesWoman
11/10/2023
成功了!谢谢!
0赞
PMF
11/10/2023
如果解决方案适合您,请不要忘记接受答案(单击答案左侧的小复选标记)
评论