VSTS 2010 SGEN : error : Could not load file or assembly (Exception from HRESULT: 0x80131515)

Visual Studio-2010Msbuild.Net 4.0TfsbuildSgen

Visual Studio-2010 Problem Overview


I am experiencing a strange issue with VS2010. We use TFS to build our API dlls and we used to reference them in our projects usign a mapped network drive that was fully trusted. We have been working like that for at least two years and everything worked perfectly.

Today, I converted a webapp to vs2010 and when I compile it in Release, it's giving me:

> SGEN : error : Could not load file or > assembly 'file:///L:\Api\Release > API_20100521.1\Release\CS.API.Exceptions.dll' or one of its dependencies. Operation > is not supported. (Exception from > HRESULT: 0x80131515)

The strange thing is that it's working when it's under the Debug profile...

I tried adding the

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

into app.config and still no luck (See http://social.msdn.microsoft.com/Forums/en/msbuild/thread/d12f6301-85bf-4b9e-8e34-a06398a60df0 and http://msdn.microsoft.com/en-us/library/dd409252(VS.100).aspx)

I am pretty sure that this issue is from visual studio or msbuild, as our code won't run from a network share when in prod because all the referenced dll's are copied into the bin folder.

If anyone has an solution (or just an idea for a search path) please let me know !

Edit : It turns out that it was working in Debug mode because generation of serialisation assemblies was turned Off. As the title say, it's really a SGEN problem since it is this utility that says that the path is not trusted...

Visual Studio-2010 Solutions


Solution 1 - Visual Studio-2010

I was able to fix this error by finding the assembly DLL in Windows Explorer, right clicking, choosing Properties, and then pressing the "unblock" button. The DLL has a stream that is marking it as an external file - and by clicking unblock you remove that designation.

Solution 2 - Visual Studio-2010

I just had the same/similar issue on a TFS build server where a build was referencing dll's from a network share.

The problems is that the CLR v4 security policy model has changed since previous versions and are not sandboxing assemblies as before.

To fix your issue just find the location of sgen.exe and create a sgen.exe.config in the same folder with following contents:

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

sgen.exe is usually at

"C:\Program Files\Microsoft SDKs\Windows\v[current version]\bin\NETFX 4.0 Tools"

You can read about some of the changes around CAS policies in .NET 4.0 in this blogpost: Link

Solution 3 - Visual Studio-2010

Had the same problem and the config change didnt work. Only when i set Generate Serialization Assembly to off in the project properties did it work.

Solution 4 - Visual Studio-2010

I had the same error and found my DLL was "blocked". Open up the DLL in explorer, right click -> properties -> press 'Unblock'.

http://cantgrokwontgrok.blogspot.com/2009/10/visual-studio-unknown-build-error.html

Solution 5 - Visual Studio-2010

I had this exact same problem and fixed it by adding the sgen.exe.config under C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools

with this simple config as others have said

<?xml version ="1.0"?>
<configuration>
  <runtime>
    <loadFromRemoteSources enabled="true" />
  </runtime>
</configuration>

Solution 6 - Visual Studio-2010

For those of you running a 64bit version of the TFS build service, I had to create the config file in the following path:

 C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools\x64

And the file contents:

<?xml version ="1.0"?>
<configuration>
<runtime>
	<loadFromRemoteSources enabled="true" />
</runtime>
</configuration>

Solution 7 - Visual Studio-2010

I had the same issue, loaded the assembly in the GAC and worked

Solution 8 - Visual Studio-2010

Adding the snippet below to the app.config file worked in my case. I'm Running Windows XP, with VS2010 service pack 1.

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

Solution 9 - Visual Studio-2010

In my case bunch of dlls were blocked.

To unblock all files in folder I used power shell with following command

dir -Path [directory path] -Recurse | Unblock-File

Solution 10 - Visual Studio-2010

Just as an FYI if you are running Windows 7 the sgen.exe file can be found at:

C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools

I had to create a sgen.exe.config and place it there and then this problem went away.

Solution 11 - Visual Studio-2010

Neither the unblock nor the config worked for me. What did the trick for me was this tip about caspol. I ran

 %windir%\Microsoft.NET\Framework\v2.0.50727\CasPol.exe -m -ag 1.2 -url file://UncPathName/UncSubPath/* FullTrust

And I was ready to go, not even a VisualStudio restart required.

Solution 12 - Visual Studio-2010

I got a similar problem and I finally got over with it by removing the licenses.licx file in the Properties folder of the solution.

Solution 13 - Visual Studio-2010

Just in case like me, Unblock was not a solution, as Unblock does not appear on my dll file properties. Kept looking and ended up closing my solution file and re-opening using the local C: copy instead of network UNC path to project sln file. Was able to publish after going this route.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionDeveloper ITView Question on Stackoverflow
Solution 1 - Visual Studio-2010SlagggView Answer on Stackoverflow
Solution 2 - Visual Studio-2010Martin HyldahlView Answer on Stackoverflow
Solution 3 - Visual Studio-2010RobView Answer on Stackoverflow
Solution 4 - Visual Studio-2010Nate ZauggView Answer on Stackoverflow
Solution 5 - Visual Studio-2010Matt WatsonView Answer on Stackoverflow
Solution 6 - Visual Studio-2010gmasselliView Answer on Stackoverflow
Solution 7 - Visual Studio-2010gabouyView Answer on Stackoverflow
Solution 8 - Visual Studio-2010venetiaView Answer on Stackoverflow
Solution 9 - Visual Studio-2010Daniil GrankinView Answer on Stackoverflow
Solution 10 - Visual Studio-2010ewahnerView Answer on Stackoverflow
Solution 11 - Visual Studio-2010Yahoo SeriousView Answer on Stackoverflow
Solution 12 - Visual Studio-2010clemchenView Answer on Stackoverflow
Solution 13 - Visual Studio-2010TaersiousView Answer on Stackoverflow