web-dev-qa-db-fra.com

VSTS 2010 SGEN: erreur: impossible de charger le fichier ou l'assembly (exception de HRESULT: 0x80131515)

Je rencontre un problème étrange avec VS2010. Nous utilisons TFS pour construire nos dll API et nous les utilisions dans nos projets pour désigner un lecteur réseau mappé qui était entièrement fiable. Nous travaillons comme ça depuis au moins deux ans et tout fonctionnait parfaitement.

Aujourd'hui, j'ai converti une application Web en vs2010 et lorsque je la compile dans Release, cela me donne:

SGEN: erreur: impossible de charger le fichier ou le fichier d'assemblage: /// L:\Api\Release API_20100521.1\Release\CS.API.Exceptions.dll 'ou l'une de ses dépendances. L'opération n'est pas prise en charge. (Exception de HRESULT: 0x80131515)

La chose étrange est que cela fonctionne quand il est sous le profil Debug ...

J'ai essayé d'ajouter le

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

dans app.config et toujours pas de chance (voir http://social.msdn.Microsoft.com/Forums/en/msbuild/thread/d12f6301-85bf-4b9e-8e34-a06398a60df et http://msdn.Microsoft.com/en-us/library/dd409252(VS.100).aspx )

Je suis à peu près sûr que ce problème provient de visual studio ou de msbuild, car notre code ne fonctionnera pas à partir d'un partage réseau s'il est en production, car toutes les dll référencées sont copiées dans le dossier bin.

Si quelqu'un a une solution (ou juste une idée de chemin de recherche), faites-le moi savoir!

Edit: il s’avère que cela fonctionnait en mode Debug car la génération des assemblys de sérialisation était désactivée. Comme le titre l'indique, c'est vraiment un problème de SGEN puisque c'est cet utilitaire qui dit que le chemin n'est pas fiable ...

105
Developer IT

J'ai pu corriger cette erreur en trouvant l'assembly DLL dans l'Explorateur Windows, en cliquant avec le bouton droit de la souris, en sélectionnant Propriétés, puis en appuyant sur le bouton "débloquer". Le DLL = a un flux qui le marque en tant que fichier externe - et en cliquant sur Débloquer, vous supprimez cette désignation.

211
Slaggg

Je viens d'avoir le même problème/similaire sur un serveur de génération TFS où une génération faisait référence à des DLL à partir d'un partage réseau.

Le problème est que le modèle de politique de sécurité CLR v4 a changé depuis les versions précédentes et ne sont plus des assemblys en sandbox comme auparavant.

Pour résoudre votre problème, recherchez l’emplacement de sgen.exe et créez un fichier sgen.exe.config dans le même dossier avec le contenu suivant:

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

sgen.exe est habituellement sur

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

Vous trouverez des informations sur les modifications apportées aux stratégies CAS dans .NET 4.0 dans cet article de blog: Lien

56
Martin Hyldahl

Avait le même problème et le changement de configuration ne fonctionnait pas. Cela ne fonctionnait que lorsque je désactivais Generate Serialization Assembly dans les propriétés du projet.

21
Rob

J'ai eu la même erreur et trouvé mon DLL était "bloqué". Ouvrez le DLL dans l'explorateur, cliquez avec le bouton droit de la souris sur -> Propriétés -> appuyez sur 'Débloquer' .

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

6
Nate Zaugg

J'ai eu exactement le même problème et je l'ai corrigé en ajoutant le fichier sgen.exe.config sous C:\Program Files (x86)\Microsoft SDK\Windows\v7.0A\Bin\NETFX 4.0 Outils.

avec cette configuration simple comme d'autres l'ont dit

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

Pour ceux d'entre vous qui exécutent une version 64 bits du service de construction TFS, j'ai dû créer le fichier de configuration dans le chemin suivant:

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

Et le contenu du fichier:

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

L'ajout de l'extrait ci-dessous au fichier app.config a fonctionné dans mon cas. J'utilise Windows XP, avec le Service Pack 1 VS2010.

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

J'ai eu le même problème, chargé l'Assemblée dans le GAC et travaillé

1
gabouy

Ni le unblock ni le config ne m'ont pas fonctionné. Qu'est-ce que le truc pour moi était cette astuce à propos de caspol . Iran

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

Et j'étais prêt à partir, même pas un redémarrage de VisualStudio.

0
Yahoo Serious

Juste au cas où, comme moi, Unblock n’était pas une solution, car Unblock n’apparaît pas dans les propriétés de mon fichier dll. Gardé la recherche, j'ai fini par fermer mon fichier de solution et rouvrir à l'aide du C: local au lieu d'un chemin UNC réseau vers le fichier sln du projet. A pu publier après avoir emprunté cette voie.

0
Taersious

Tout comme un FYI si vous utilisez Windows 7, le fichier sgen.exe peut être trouvé à l'adresse suivante:

C:\Programmes\Outils\Microsoft SDK\Windows\v7.0A\Bin\NETFX 4.0

J'ai dû créer un fichier sgen.exe.config et le placer là-bas, puis le problème a disparu.

0
ewahner

J'ai eu un problème similaire et j'ai finalement résolu le problème en supprimant le fichier licences.licx dans le dossier Propriétés de la solution.

0
clemchen