You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

DotRAS.dll在Windows 10 1803更新后失效的技术问题咨询

解决Windows 10 1803后DotRas抛出“结构大小错误”的问题

这个问题我之前帮朋友排查过,核心原因是Windows 10 1803版本对系统内置的RAS(远程访问服务)结构做了更新,而你使用的旧版本DotRas库没有适配这个新的结构尺寸,导致调用系统API时出现结构不匹配的异常。

下面是具体的解决步骤:

1. 升级DotRas到最新兼容版本

旧版DotRas(比如2.x及更早)没有针对Windows 10 1803+的RAS结构变化做适配,直接升级到最新版就能解决大部分问题:

  • 打开NuGet包管理器控制台,执行命令:
    Install-Package DotRas -Version [最新稳定版本号]
    
    或者在Visual Studio的NuGet包管理器中搜索DotRas,选择最新版本进行更新。

2. 手动指定RAS条目版本(如果升级后仍有问题)

如果升级库后还是报错,可能需要在创建VPN条目时明确指定适配Windows 10 1803及以上的结构版本:

Dim entry As New RasEntry("MyVPNConnection", RasDeviceType.Vpn)
' 指定适配Windows 10的条目版本
entry.EntryVersion = RasEntryVersion.Windows10
' 继续设置VPN的其他参数(服务器地址、认证方式等)
entry.RemoteAddress = "vpn.example.com"
entry.Options.UsePreSharedKey = True
' ...其他配置

' 保存条目到电话簿
Dim phoneBook As New RasPhoneBook()
phoneBook.Open(RasPhoneBook.GetPhoneBookPath(RasPhoneBookType.AllUsers))
phoneBook.Entries.Add(entry)

3. 检查程序平台目标设置

确保你的VB.NET程序的平台目标和系统位数匹配:

  • 右键项目 → 属性 → 生成 → 平台目标:
    • 如果是64位系统,选择x64;32位系统选择x86
    • 避免使用Any CPU并勾选“首选32位”,这可能导致结构大小在不同位数环境下不匹配。

额外说明

Windows 10 1803之后的版本对RASENTRY结构增加了新的字段,旧版DotRas在调用GetEntryProperties时传递的结构大小还是旧版本的,系统API检测到大小不匹配就会抛出这个异常。升级后的DotRas会根据系统版本自动调整结构大小,或者通过手动指定EntryVersion来强制使用对应版本的结构。

内容的提问来源于stack exchange,提问作者Claudio Veronesi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:40:37