当前位置: 首页 > news >正文

C#程序本地运行正常,通过网络下载报错:FileLoadException:“未能加载文件或程序集“xxx.dll”或它的某一个依赖项。

帮手(assister.exe)鼠标自动点击程序,调用了dll用来作为许可证管理。

本地编译之后,通过U盘复制到其他电脑,运行正常。但是上传到网站后,再下载下来。运行时报异常:

System.IO.FileLoadException:“未能加载文件或程序集“file:///C:\Users\xxx\xxx\lic.dll”或它的某一个依赖项。不支持操作。 (异常来自 HRESULT:0x80131515)”
NotSupportedException: 尝试从一个网络位置加载程序集,在早期版本的 .NET Framework 中,这会导致对该程序集进行沙盒处理。此发行版的 .NET Framework 默认情况下不启用 CAS 策略,因此,此加载可能会很危险。如果此加载不是要对程序集进行沙盒处理,请启用 loadFromRemoteSources 开关。有关详细信息,请参见 http://go.microsoft.com/fwlink/?LinkId=155569。

根本原因在于 Windows 操作系统对“来自互联网的文件”的安全标记(Alternate Data Stream - ADS)。

为什么上传后再下载就报异常?

本地编译和复制:

当本地电脑上编译程序并直接复制到另一台电脑时,这些文件被视为“本地创建”或“本地文件”。
它们没有被 Windows 标记为来自“互联网”或“远程位置”。因此,.NET 运行时可以正常加载它们,不会触发安全限制。

上传到网站再下载:

当您将文件上传到网站(如网盘、GitHub、公司内网服务器等),然后再从该网站下载到目标电脑时,浏览器或下载工具会将这些文件标记为“来自互联网”。
Windows 通过一个名为 “Zone.Identifier” 的备用数据流 (Alternate Data Stream - ADS) 来实现这个标记。您可以在文件属性的“常规”选项卡底部看到“此文件来自其他计算机,可能被阻止以帮助保护此计算机。”的提示和“解除锁定”按钮。

方法 1:解除文件锁定
  1. 在目标电脑上,找到您下载下来的 xxx.dll 文件(以及主程序 .exe 文件,有时也需要解除)。
  2. 右键单击该文件,选择“属性”。
  3. 在“常规”选项卡的底部,如果看到“此文件来自其他计算机,可能被阻止以帮助保护此计算机。”的提示,勾选旁边的“解除锁定”复选框。
  4. 点击“应用”或“确定”。
  5. 再次运行您的 WPF 程序。
方法 2:在配置文件中启用 loadFromRemoteSources 

    在程序app.exe.config增加如下配置:

<configuration><runtime><loadFromRemoteSources enabled="true" /></runtime>
</configuration>

    注意:这会降低应用程序的安全性,因为它允许从任何位置(包括潜在的不安全网络位置)加载程序集。仅在您完全信任您的应用程序和部署过程时使用。不推荐作为通用解决方案,尤其是分发给他人时。

帮手程序下载: https://download.csdn.net/download/kyranhan/91523526

http://www.dtcms.com/a/308593.html

相关文章:

  • 【pycharm的使用】
  • Qwen3-30B-A3B-Thinking-2507 推理模型深度评测
  • 250721脑电分析课题进展——手工特征总结
  • lsof命令
  • SSO面临的问题
  • 为什么有时神经元会输出类似(甚至一样)?
  • 行业分享丨从工具应用到体系进化:东风商用车仿真体系建设与实践
  • 【源力觉醒 创作者计划】文心一言与deepseek集成springboot开发哪个更方便
  • 【力扣】面试经典150题总结01-数组/字符串
  • Dev-C++ 6.3 安装与使用指南:适合新手的C/C++编程工具
  • Allegro实用技巧-Snap-命令行移动
  • Android端RTMP低延迟播放器在工业与智能场景下的架构与落地
  • MySQL 中 CHAR 和 VARCHAR 类型有什么区别?
  • 一次性接收大量上传图片,后端优化方式
  • 【Git】Git 实战:完整拉取项目所有分支和标签,切换远程仓库,解决保护分支推送冲突
  • Linux Flathub软件管理方法 使用指南
  • 搭建个人博客
  • 决策树实现回归任务
  • 利用可观测性进行高效故障治理:从预防到改进的完整实践
  • 从Excel到工时管理系统:企业如何选择更高效的工时记录工具?
  • 第二十九章:AI的“原子与批次”:高维数据表示与操作精炼【总结前面(1)】
  • Windows 安全中心是什么?如何关闭 Windows 11 的安全中心
  • 算法导论第三版代码python实现与部分习题答案-第六章:堆排序
  • DooTask非营利性组织:让高效协作触手可及
  • Day 5: 深度学习理论与PyTorch实现 - 神经网络训练的艺术
  • RocketMQ消息队列:从入门到Spring Boot实战
  • 【React】fiber 架构
  • OS架构整理
  • Spring Boot音乐服务器项目-移除喜欢和操作
  • C语言07