Estoy experimentando un problema extraño con VS2010. Usamos TFS para construir nuestras DLL de API y solíamos hacer referencia a ellas en nuestros proyectos usando una unidad de red mapeada que era totalmente confiable. Llevamos trabajando así al menos dos años y todo funcionó a la perfección.
Hoy, convertí una aplicación web a vs2010 y cuando la compilo en Release, me está dando:
SGEN: error: no se pudo cargar el archivo o ensamblado 'file: /// L: \ Api \ Release API_20100521.1 \ Release \ CS.API.Exceptions.dll' o una de sus dependencias. La operación no es compatible. (Excepción de HRESULT: 0x80131515)
Lo extraño es que funciona cuando está bajo el perfil de depuración ...
Intenté agregar el
<runtime>
<loadFromRemoteSources enabled="true" />
</runtime>
en app.config y aún sin suerte (consulte http://social.msdn.microsoft.com/Forums/en/msbuild/thread/d12f6301-85bf-4b9e-8e34-a06398a60df0 y http://msdn.microsoft.com/ en-us / library / dd409252 (VS.100) .aspx )
Estoy bastante seguro de que este problema es de Visual Studio o msbuild, ya que nuestro código no se ejecutará desde un recurso compartido de red cuando esté en producción porque todas las DLL a las que se hace referencia se copian en la carpeta bin.
Si alguien tiene una solución (o simplemente una idea para una ruta de búsqueda), ¡hágamelo saber!
Editar: resulta que estaba funcionando en modo de depuración porque la generación de ensamblajes de serialización estaba desactivada. Como dice el título, es realmente un problema de SGEN ya que es esta utilidad la que dice que la ruta no es de confianza ...
Acabo de tener el mismo problema / similar en un servidor de compilación TFS donde una compilación hacía referencia a dll desde un recurso compartido de red.
El problema es que el modelo de política de seguridad de CLR v4 ha cambiado desde versiones anteriores y no son ensamblados de espacio aislado como antes.
Para solucionar su problema, simplemente busque la ubicación de sgen.exe y cree un sgen.exe.config en la misma carpeta con el siguiente contenido:
sgen.exe suele estar en
Puede leer sobre algunos de los cambios relacionados con las políticas de CAS en .NET 4.0 en esta publicación de blog: Enlace
fuente
Tuve el mismo problema y el cambio de configuración no funcionó. Solo cuando configuré Generar ensamblaje de serialización en apagado en las propiedades del proyecto, funcionó.
fuente
Tuve el mismo error y encontré que mi DLL estaba "bloqueado". Abra la DLL en el explorador, haga clic derecho -> propiedades -> presione 'Desbloquear'.
http://cantgrokwontgrok.blogspot.com/2009/10/visual-studio-unknown-build-error.html
fuente
Tuve exactamente el mismo problema y lo solucioné agregando sgen.exe.config en C: \ Archivos de programa (x86) \ Microsoft SDKs \ Windows \ v7.0A \ Bin \ NETFX 4.0 Tools
con esta configuración simple como han dicho otros
fuente
Para aquellos de ustedes que ejecutan una versión de 64 bits del servicio de compilación TFS, tuve que crear el archivo de configuración en la siguiente ruta:
Y el contenido del archivo:
fuente
Tuve el mismo problema, cargué el ensamblaje en el GAC y trabajé
fuente
Agregar el fragmento a continuación al archivo app.config funcionó en mi caso. Estoy ejecutando Windows XP, con el Service Pack 1 de VS2010.
fuente
Solo como un FYI si está ejecutando Windows 7, el archivo sgen.exe se puede encontrar en:
C: \ Archivos de programa (x86) \ Microsoft SDKs \ Windows \ v7.0A \ Bin \ NETFX 4.0 Tools
Tuve que crear un sgen.exe.config y colocarlo allí y luego este problema desapareció.
fuente
Ni el
unblock
ni elconfig
funcionaron para mí. Lo que me hizo el truco fue este consejocaspol
. Yo corríY estaba listo para comenzar, ni siquiera era necesario reiniciar VisualStudio.
fuente
Tuve un problema similar y finalmente lo superé eliminando el archivo license.licx en la carpeta Propiedades de la solución.
fuente
Por si acaso, como yo, Desbloquear no fue una solución, ya que Desbloquear no aparece en las propiedades de mi archivo dll. Seguí buscando y terminé cerrando mi archivo de solución y volviendo a abrir usando la C: copia local en lugar de la ruta UNC de red al archivo SLN del proyecto. Pude publicar después de seguir esta ruta.
fuente
En mi caso, se bloquearon muchos archivos DLL.
Para desbloquear todos los archivos en la carpeta, usé Power Shell con el siguiente comando
fuente