Selenium C# WPF发布版重命名后出现System.Text.Json程序集加载错误
嘿,这个问题我之前也碰到过,大概率是重命名后程序找不到正确的配置或者依赖文件导致的,给你几个实用的排查和解决方向:
同步重命名配置文件:当你重命名exe文件时,别忘了把同目录下对应的
.exe.config文件也改成一样的名字。比如原来你的程序是MyApp.exe,对应的配置是MyApp.exe.config,重命名exe为NewApp.exe后,配置文件也要改成NewApp.exe.config——这个文件里包含了程序集绑定重定向的规则,没它的话程序会默认找旧版本的System.Text.Json,自然就报错了。检查NuGet包的复制本地设置:右键项目里的
System.Text.Json引用,打开属性面板,确认“复制本地”选项是设为True的。这样编译发布时,对应的dll文件会被复制到输出目录,重命名后也能正常找到依赖。手动添加程序集绑定重定向:如果配置文件里没有相关的重定向规则,你可以手动补上。打开你的
App.config(编译后对应exe的.config文件),在<runtime>节点里添加这段代码:<dependentAssembly> <assemblyIdentity name="System.Text.Json" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-9.0.4.0" newVersion="9.0.4.0" /> </dependentAssembly>这样就能让程序自动把对旧版本的请求重定向到你安装的9.0.4版本。
排查单文件发布的特殊情况:如果你是用“发布为单文件”的方式打包的,那得检查项目的发布设置。可以在项目文件(
.csproj)里添加<IncludeNativeLibrariesForSelfExtract>true</IncludeNativeLibrariesForSelfExtract>,确保依赖的程序集被正确嵌入到单文件中,避免重命名后找不到资源。
备注:内容来源于stack exchange,提问作者lorenzl

