由于文件resx位于Internet或限制区域中或文件上带有网络标记,因此无法处理


89

在Visual Studio 2017中调试c#API编码时遇到问题。调试未启动并显示错误消息,例如

在此处输入图片说明

关于此错误消息有任何想法吗?


12
尝试右键单击该文件,然后在Windowws Explorer中选择“属性”。对话框底部是否有用于解锁文件的选项?
Lasse V. Karlsen

伟大的Lasse,现在调试正常,谢谢。
Raju.Saravanan

3
“网络标记”是野兽的新标记吗?
康拉德

Answers:


146

如果您是从Internet下载的文件,无论是单独下载还是位于.zip文件或类似文件中,则可能已被“锁定”,因为它被标记为来自Internet区域。许多程序会将其用作不应该信任内容的标志。

最简单的解决方案是右键单击Windows资源管理器中的文件,选择“属性”,然后在此对话框的底部,您应具有“取消阻止”选项。请记住单击确定以接受更改。

如果您从存档中获取文件,通常最好先取消阻止存档,如果该文件被标记为来自Internet区域,并且您将其解压缩,则该标志可能会传播到您刚刚取消存档的许多文件中。如果先取消阻止,则未存档的文件应该没问题。

还有一个Powershell命令,Unblock-File

> Unblock-File *

此外,还有一些编写代码的方法也可以删除该锁定。

来自@ Defcon1的评论:您还可以结合Unblock-File使用Get-ChildItem以创建一个递归解锁文件的管道。由于Unblock-File无法自行递归查找文件,因此您必须使用Get-ChildItem这一部分。

> Get-ChildItem -Path '<YOUR-SOLUTION-PATH>' -Recurse | Unblock-File

1
感谢您的详尽答复。
Raju.Saravanan

1
感谢您提供PowerShell参考-处理大量文件时非常有帮助
scotru

为什么我很难找到该Powershell命令?谢谢!👍–
内维尔,

解决了我的问题。谢谢
Mohamed Uvais M

14
我在递归模式下使用了Unblock-file:ps> Get-ChildItem -Path '<YOUR-SOLUTION-PATH>' -Recurse | Unblock-File
Defkon1

62
  1. 打开文件资源管理器。导航到项目/解决方案目录
  2. 搜索* .resx。->您将获得resx文件列表
  3. 右键单击resx文件,打开属性并选中“取消阻止”选项
  4. 对每个resx文件重复#3。
  5. 重新加载项目。

10
没有unblock选择。
dafie

1
如果文件被阻止,则unblock选项将出现在“常规”选项卡底部的“属性”区域中。如果未阻止,则该选项不会出现。
spadelives

1
为我工作!好答案!
Toby

4
需要明确的是,它在文件浏览器中,而不在Visual Studio的解决方案浏览器中。
Ferus

可以确认这是问题所在。详细说明@Dafie的评论:如果没有取消阻止复选框,则该文件已经被取消阻止。此问题是由另一个原因引起的。您会看到,如果有该复选框,请选中它并单击“应用”,该复选框将一起消失。
Sander Koldenhof

24

这些答案都不适合我,我必须执行以下操作:

  1. 开始菜单>键入“ Internet选项”。
  2. 在“安全性”选项卡上选择“本地Intranet”区域,然后单击“站点”按钮
  3. 点击高级按钮
  4. 输入文件:// [计算机名]
  5. 确保未选中“需要服务器验证...

资料来源:https : //superuser.com/q/44503


1
添加file://domain.com工作,谢谢!上下文:大型服务器大修将我们的文件移动到了DFS;Windows域是domain.com文件所在的位置,\\domain.com\...这可能已经触发了问题。
Kodithic

我可以确认此解决方案解决了我的问题,以便.sln在本地网络中建立内部网络共享。错误消息为:error MSB3821: Couldn't process file *.resx 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.
Mar Tin

除此以外,我还可以确认没有其他工作。我添加了文件:// [计算机名称]以及我从中加载.sln的网络共享IP(例如,文件://10.0.0.0)。我正在使用Windows 7 Enterprise 64位和Internet Explorer版本11.0.9600.19236和Visual Studio 2019社区版。也不需要重新启动Windows。
马克


4

尽管这是一个比较老的问题,但我花了几个小时来寻找解决此错误的方法,该错误适用于整个项目子文件夹中的多个文件。

要针对项目中的所有文件修复此问题,请使用Visual Studio->工具->选项->信任设置,然后将项目路径添加为信任路径。

Visual Studio可信路径


只有对我有用的东西,其他都没有。
赎金

4
  1. 从错误日志中找到路径并在资源管理器中打开文件2)选择文件并右键单击->属性
  2. 然后选中“取消阻止”选项,然后单击“应用” 在此处输入图片说明

2

如果您使用的是OneDrive或任何类似的网络驱动器,则有两种选择:

1)最简单的方法是将文件夹移动到PC内的本地目录(例如:.C :)。

2),但如果您想继续使用OneDrive,建议您将其添加到Internet Explorer选项中的受信任站点,这样可以解决问题。

在此处输入图片说明


2

解决方案:编辑并保存文件!

从VisualStudio转到“视图”并展开以查看它的resx文件

右键单击菜单,选择OpenWith ... XML(文本)编辑器

只需在末尾添加一个空格并保存即可。


我也尝试了许多其他方法,但都失败了。我认为最近有一张额外的支票
profimedica

2

我的解决方案中的resx文件存在此问题。我正在使用Onedrive。但是,以上解决方案均无法解决该问题。

问题是我使用的图标位于Windows的MyWindow.resx文件中。

我将其删除,然后从“应用程序本地资源”资源文件夹中获取了该图标。

 private ResourceManager rm = App_LocalResources.LocalResources.ResourceManager;
 
 ..
 
InitializeComponent();
this.Icon = (Icon)rm.GetObject("IconName");

这是在更新到VS2019之后发生的。


1

以上都不起作用。

  • 资源管理器属性中不存在“取消阻止”选项。
  • 重新创建文件,将文件夹(和resx文件)添加到“工具”->“选项”->“信任设置”不起作用。

解决方案是在本地复制项目(从网络驱动器)。


1

如果像我一样,您认真地遵循了上述所有解决方案,但错误仍然存在存在,请尝试关闭并重新打开Visual Studio。

很明显,我知道,但是也许我不是唯一一整天盯着电脑屏幕变得头脑模糊的人。


1

以上都不对我有用。

在将新按钮添加到winform的工具栏后,这发生在我身上。当按钮使用System.Drawing.Bitmap(在图像属性中)默认图像时,此错误对我产生了。在将其更改为受信任的映像(选中了“解锁”选项后将其添加到我的资源文件中)后,此错误自行解决。


0

我偶然发现了此错误的另一个可能原因。如果在项目树中使用NTFS符号链接,并且驱动器可能被替换,即使它们指向本地驱动器,也可能会出现此错误。如果是这种情况,请尝试避免通过符号链接访问.resx文件的情况。


就是这样 我介绍了一个符号链接,以修复我很少使用的来自不同存储库的某些代码中的参考路径错误。删除符号链接并改为破解csproj即可解决此问题。
基督教

0

上面的建议对我都不起作用,因此我创建了一个名称稍有不同的新文件,并将有问题的文件的内容复制到新文件中,重命名了有问题的文件,并用有问题的文件名重命名了新文件。像魅力一样工作。问题解决了。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.