聪明人!我正在尝试使用 dotnet cli 从 Visual Studio 构建 Jenkis 管道自动化发布步骤。
首先关于 VS 中的发布步骤,他们按下“发布”选项,然后选择所有标志。
在詹金斯我跑:
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:仅可执行应用程序支持发布到单个文件
使用
dotnet publish
时需要指定目标 csproj,否则您会得到相当未定义的行为,因为发布在库上没有意义。
二进制文件上的 WinMerge(或 diff)是没有用的,除非您确切知道要查找的内容。 Dll 和 exe 文件在构建之间总是不同的,因为它们有编码在其中的时间戳。
与其要求“在发布之前删除所有现有文件”,不如确保每次都开始一个干净的构建。我确信有一个詹金斯设置可以做到这一点。作为解决方法,您还可以在构建开始时调用
git clean -dfx
。