vs2015 c# selenium 遇坑记

博主用vs2015、C#、selenium和.net framework4.5编写自动开启网页并截屏的winform app,本地运行正常,但部署到win server 2012客户机报错。经分析排查,先通过复制netstandard.dll文件使程序启动,运行中仍报错,最终用.net framework4.51新建项目、重新获取selenium包解决问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

vs2015 c# selenium + .net framework4.5 编写了一个自动开启网页并截屏的winform app, 本地win8.1+另一台win7上跑均无问题, 但部署到两台客户机win server 2012(framework4.5)上均起不来, 报错:

CLR20r3 具体异常是System.IO.FileNotFoundException

应该是目标机环境或配置问题, 网查后装了vc_redist.x64.exe无效, 加装了.net framework4.72(但客户机不敢重启)无效.

分析: 到底是哪个文件不存在呢? app增加全局异常捕获后, 得到异常信息:

未能加载文件或程序集“netstandard, Version=2.0.0.0, Culture=neutral, ,PublicKeyToken=cc7b13ffcd2ddd51’ or one of its dependencies. The system cannot find the file specified."

网查后, 在 .net framework项目的工程文件(csproj)中加入配置:

<PropertyGroup>
   <RestoreProjectStyle>PackageReference</RestoreProjectStyle>
   <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
</PropertyGroup>

无效.

是否目标机上却少netstandard文件呢? 在开发本机上的 Windows\Microsoft.NET 目录下搜netstandard果然找到找到文件netstandard.dll在目录 v4.0_2.0.0.0__cc7b13ffcd2ddd51下, cc7b13ffcd2ddd51…这不正是报错中的KeyTocken嘛?!小欣喜. 将此文件复制到目标机app目录下, 果然程序能启动了, 重大进展!

但运行中, 开启浏览器时还有报错:

找不到方法:'System.String System.String.Format(System.IFormatProvider,System.String,System.Object)

网查还是.net framework版本问题. 改用.net framework4.61, 4.72重新编译均无效, 或改报错为:

找不到方法:"!!0[] System.Array.Empty()"

考虑到编程时曾数次改过app的.net framework编译版本, vs2015也警告说NuGet下来的selenium包版本可能与当前framework版本不兼容. 索性:

老老实实用.net framework4.51(与目标机相同)新建项目, 重新NuGet selenium包, 把原来版本下的代码复制过来, 重新生成exe文件. 部署到目标机上, 成功!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值