聪明的人!我正试图使用dotnet插件从Visual Studio构建Jenkis管道自动发布步骤。
首先关于发布步骤在VS他们按下选项发布,然后他们选择所有的标志。all the flags
在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比较genareted二进制文件时,它们完全不同。非常感谢!
我试图指定.sln文件之前和.pubxml文件和csproj,但总是有一个错误和文件不发布itselfs.现在仍然有一个错误,但文件确实发布在bin/release/path.
错误消息:错误NETSDK 1099:发布到单个文件只支持可执行应用程序
1条答案
按热度按时间yquaqz181#
在使用
dotnet publish
时,需要指定目标csproj,否则会出现相当不确定的行为,因为发布在库上没有意义。对二进制文件的WinMerge(或diff)是无用的,除非你确切地知道你在寻找什么。Dll和exe文件在不同的版本之间总是不同的,因为它们有时间戳编码。
与其要求“在发布之前删除所有现有文件”,你更应该确保每次都启动一个干净的构建。我相信有一个jenkins设置可以做到这一点。作为一种解决方法,你也可以在构建开始时调用
git clean -dfx
。