MSB3821:无法处理文件“路径”,因为它位于 Internet 或受限区域中,或在文件上有“Web 标记”

当 MSBuild 尝试处理从 Web 下载的具有安全限制的文件时,就会发生此错误。

当你使用浏览器将 HTML 页面等 Web 资产下载到 Windows 设备时,浏览器会插入称为“Web 标记”的标记,用于记录页面来源站点的安全区域。 这是为了防止潜在的恶意页面,并在原始站点上强制执行安全级别,甚至在从站点下载页面之后。 由于以下安全问题,需要进行此安全检查:Visual Studio 远程代码执行漏洞 CVE-2018-8172

MSBuild 遵守此安全限制,但如果你决定信任有关的内容,则可以通过在文件资源管理器中解除对单个文件的阻止(打开文件上的“属性”窗口,然后选中“解除阻止”),从而替代此限制。 若要使用 PowerShell 脚本解除对多个文件的阻止,请使用 Unblock-File cmdlet。

完整消息如以下文本所示:

Couldn't process file 'path' due to its being in the Internet or Restricted zone or having the mark of the web on the file.
Remove the mark of the web if you want to process these files.

Visual Studio 还包括检测“Web 标记”注释的安全限制。 可以在“工具”>“选项”部分的“信任设置”中自定义这些设置。 请参阅配置文件和文件夹的信任设置

如果无法直接在 Visual Studio 中修复错误,请关闭 Visual Studio,转到文件资源管理器中的项目文件夹,打开显示错误的文件的“属性”菜单(键盘:Alt + Enter),选中带有“取消阻止”标签的复选框,然后单击“应用”并关闭窗口。 重新打开 Visual Studio 并打开项目后,请尝试再次生成。

在 PowerShell 中,可以使用命令 Unblock-File