c# - tiene - modificadores de acceso para que sirven
Visual Studio 2015, no puede cambiar el modificador de acceso de los nuevos archivos de recursos (4)
¿Puede verificar la propiedad de su archivo y verificar si la Herramienta personalizada es ResXFileCodeGenerator? Si es GlobalResourceProxyGenerator, se deshabilitará el menú desplegable.
Estoy tratando de crear nuevos archivos de recursos en VS2015. Los creé bien, pero cuando intento cambiar el "Modificador de acceso", el menú desplegable está desactivado ...
¿Algunas ideas?
Estoy trabajando en un ASP.NET MVC 6 (ASP.NET5). El proyecto es una biblioteca de clases, pero lo he probado en un proyecto web con los mismos resultados.
¡¡Gracias!!
He estado teniendo un problema similar.
Esto parece ser un problema conocido: https://github.com/aspnet/Tooling/issues/339
Tuve el mismo problema, pero encontré esta solución fácil. La opción desplegable Modificador de acceso de Visual Studio está deshabilitada para el archivo de recursos.
Para resumir:
- Haga clic derecho en su recurso de archivo, elija Propiedades (Alt + Enter)
- Cambiar la acción de compilación al recurso incorporado
- Cambie la herramienta personalizada a PublicResXFileCodeGenerator
A) En Asp.net Core proyectos
Este problema es un https://github.com/aspnet/Tooling/issues/339 en los proyectos de Asp.net Core y el modificador de acceso está en public de forma predeterminada y no puede cambiarlo. Será resuelto por las próximas actualizaciones del equipo central de asp.net, pero si necesita internal modificador de acceso internal , puede usar mi solución temporal:
- Agregue todos los elementos del diseñador de recursos en su
Resource.resxy guárdelo - En el explorador de soluciones, expanda el árbol
Resource.resxy abraResource.Designer.cs - Reemplace todas
publiccadenaspublicen él coninternaly guárdelo
Nota: cada vez que guarde el archivo
Resource.resxdebe volver a realizar el paso 3 .
Finalmente, debe tener un archivo Resource.Designer.cs con modificadores de acceso como este:
También verifique el namespace de namespace en el archivo Resource.Designer.cs . debe ser un namespace apropiado. Sincroniza con el namespace tu proyecto.
B) En proyectos normales de asp.net
Si no tiene la propiedad
CustomToolen elProperties panelde su archivo de recursos (.resx), cámbielo aPublicResXFileCodeGeneratory resuelva el problemaLuego debe cambiar algunas configuraciones en su archivo de proyecto (
.csproj) manualmente. Es muy fácil, solo sigue mis instrucciones:
- Haga clic derecho en su proyecto en el
solution explorery seleccione Descargar proyecto - Haga clic derecho nuevamente en él y seleccione Editar ..... csproj
- En el archivo
.csprojabierto, busque la cadena.resx, verá un bloque de configuraciones allí. Eso es algo así como los códigos de abajo. -
PublicResXFileCodeGeneratorpor algo como el siguiente código (incluyaPublicResXFileCodeGenerator):
.
<EmbeddedResource Include="MyResourceFile.resx">
<SubType>Designer</SubType>
<Generator>PublicResXFileCodeGenerator</Generator> <!--important line-->
<LastGenOutput>MyResourceFile.Designer.cs</LastGenOutput>
</EmbeddedResource>
- Guarde el archivo
.csprojeditado - Haga clic derecho nuevamente en su proyecto en el
solution explorery seleccione Recargar proyecto - Ahora abre tu archivo
.resxy disfruta;)
Nota: use el nombre de su archivo de recursos en lugar de
MyResourceFile