如何通过网页显示Windows系统Program Files目录中文件的版本信息?
能否用 .NET/ASP.NET 实现通过URL查看Windows本地软件版本及发布日期?
当然可以!这个需求完全可以用 .NET/ASP.NET 技术栈实现,核心思路是让用户通过浏览器访问你的URL后,在本地浏览器环境中读取自己电脑上目标软件的文件属性——毕竟服务器没法直接访问用户本地文件,得靠客户端侧的代码来完成这个操作。下面给你两种可行的实现方案:
方案一:使用 Blazor WebAssembly (推荐)
Blazor WASM 允许你直接在浏览器中运行 .NET 代码,这样就能利用 .NET 自带的API轻松读取Windows文件的版本和发布日期信息,无需额外依赖复杂的JavaScript逻辑。
实现步骤:
- 创建一个 Blazor WebAssembly 项目:
用Visual Studio或者.NET CLI创建项目:dotnet new blazorwasm -n AppVersionChecker - 添加文件选择和版本读取逻辑:
在某个组件(比如Pages/Index.razor)中添加以下代码:@page "/" @using System.Diagnostics <h3>检查本地软件版本</h3> <input type="file" @onchange="HandleFileSelected" accept=".exe,.dll" /> @if (fileVersionInfo != null) { <div class="mt-3"> <p><strong>软件名称:</strong>@fileVersionInfo.ProductName</p> <p><strong>版本号:</strong>@fileVersionInfo.ProductVersion</p> <p><strong>发布日期:</strong>@fileVersionInfo.FileDate.ToLocalTime()</p> </div> } @code { private FileVersionInfo? fileVersionInfo; private async Task HandleFileSelected(InputFileChangeEventArgs e) { var file = e.File; // 将选中的文件保存到临时路径(Blazor WASM 可以访问本地沙箱内的路径) var tempPath = Path.Combine(Path.GetTempPath(), file.Name); using var stream = file.OpenReadStream(); using var fileStream = new FileStream(tempPath, FileMode.Create); await stream.CopyToAsync(fileStream); // 读取文件版本信息 fileVersionInfo = FileVersionInfo.GetVersionInfo(tempPath); // 删除临时文件 File.Delete(tempPath); StateHasChanged(); } } - 发布部署:
将项目发布到你的ASP.NET Core服务器或者静态托管服务,然后把生成的URL发给用户即可。
用户打开URL后,只需要点击文件选择按钮,找到自己电脑上已安装的我方软件的主程序(比如.exe或者.dll文件),就能看到版本号和发布日期了——整个过程完全在用户本地完成,不会把文件上传到服务器,符合“仅读取文件属性,无需运行程序”的要求。
方案二:ASP.NET Core + JavaScript (适合纯前端偏好的场景)
如果不想用Blazor,也可以用ASP.NET Core做后端,前端用JavaScript结合第三方库读取Windows文件的版本信息。不过这种方式需要处理二进制文件解析,相对麻烦一些。
核心思路:
- 前端用
<input type="file">让用户选择本地文件,然后用JavaScript读取文件的二进制数据。 - 使用专门解析PE文件(Windows可执行文件)的JavaScript库来提取版本资源信息。
- 把解析后的信息展示给用户。
不过这种方式的缺点是需要处理二进制解析的细节,不如Blazor WASM直接调用.NET API来得简单可靠。
注意事项
- 安全性:浏览器的同源策略和沙箱限制会阻止代码未经用户授权访问本地文件,所以必须让用户主动选择文件,不能自动扫描用户的电脑——这是浏览器的安全机制,无法绕过。
- 文件路径:用户需要知道我方软件的安装路径(比如默认的
C:\Program Files\YourApp\YourApp.exe),才能准确选中目标文件。你可以在URL页面上给出路径提示,帮助用户快速找到文件。
内容的提问来源于stack exchange,提问作者John Cruz
相关产品推荐
相关产品推荐

