What does it mean when ReSharper says "The plugin xunit could not be loaded from "C:\Program Files\JetBrains\...\plugins\xunit.dll" or one of its dependencies. Operation is not supported. (Exception from HRESULT: 0x801311515"?

Short answer:

Make sure you "unblock" all of the plugin files before copying them into the plugins folder. You can do this by right clicking each dll file individually, select properties and click the "Unblock" button.

If you do not do it before copying in, then file permissions may (silently) prevent you from clearing it later.

Long answer:

When you download the zip file in Internet Explorer (and I think Firefox) the browser adds a "Persistent Zone Identifier" to it, marking the file as having come from the Internet Zone. Certain unzipping utilities (like the one built into Windows) add the identifier to all extracted files.

Windows uses this identifier to display a warning that a file might be unsafe when trying to execute a file downloaded from the Internet. As I understand it, .net does not treat an assembly with this identifier as full trust, which is why it fails to load.

Removing the identifier via the file properties dialog fixes the issue.

This post gives a bit more information and explains how to remove the identifier from an elevated command prompt.

Last edited Feb 14, 2010 at 10:07 PM by mattellis, version 2