2012-07-24 34 views
12

Recientemente, nuestro .Net cliente libaray se está actualizando para compilar contra Net 4.0. Después de cambiar el marco de destino a 4.0, la aplicación tiene algunos errores de compilación.SecurityAction.RequestMinimum es obsoleto en .Net 4.0

En AssemblyInfo.cs:

[assembly: SecurityPermission(SecurityAction.RequestMinimum, Execution = true)]

Error 7 Warning as Error: 'System.Security.Permissions.SecurityAction.RequestMinimum' is obsolete: '"Assembly level declarative security is obsolete and is no longer enforced by the CLR by default. See http://go.microsoft.com/fwlink/?LinkID=155570 for more information."' `

En .Net 4.0, muestra que: SecurityAction.RequestMinimum como obsoletos, y tratamos a todos como advertencia de error.

¿Qué debo hacer con él? - Solo elimínalo (¿tendrá algún impacto inesperado, por ejemplo, cuando los dlls se usan en IIS) o cambia a algún otro valor? No estoy familiarizado con .Net, especialmente con su mecanismo de seguridad.

¿Alguien puede ayudarnos en esto? Gracias por cualquier consejo y comentar :)

Respuesta

14

De MSDN:

In the .NET Framework version 4, runtime support has been removed for enforcing the Deny, RequestMinimum, RequestOptional, and RequestRefuse permission requests. These requests should not be used in code that is based on .NET Framework 4 or later.

lo tanto, sólo quitarla.

+0

Perdón por la respuesta tardía. Gracias, Centro, como dijiste, simplemente eliminé la etiqueta, y funciona:) –

+1

Solo quería que sepas que si dependes del archivo de clase autogenerado de resgen VS2013, no puedes evitar esta advertencia a menos que post-proceses el archivo manualmente /automáticamente. – galmok

+2

¿Está bien simplemente eliminar el agujero: '[assembly: SecurityPermission (SecurityAction.RequestMinimum, Execution = true)]' ?? – DanielV

4

Algunas búsquedas me llevaron aquí por un error de rdlc VB.net similar (así que sí, sé que la pregunta fue etiquetada C#). No utilizar el código erróneo, pero he encontrado que un guión bajo callejero causó este error, por ejemplo: en una expresión de texto es posible que accidentalmente puso:

"This is a " & _ 
"test" 

pensando que estás en algún código detrás, pero por desgracia esto genera el mismo error que se menciona anteriormente y una vez eliminado, el error desapareció.

+0

Vi lo mismo con paréntesis no coincidentes –