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.resx
y guárdelo - En el explorador de soluciones, expanda el árbol
Resource.resx
y abraResource.Designer.cs
- Reemplace todas
public
cadenaspublic
en él coninternal
y guárdelo
Nota: cada vez que guarde el archivo
Resource.resx
debe 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
CustomTool
en elProperties panel
de su archivo de recursos (.resx
), cámbielo aPublicResXFileCodeGenerator
y 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 explorer
y seleccione Descargar proyecto - Haga clic derecho nuevamente en él y seleccione Editar ..... csproj
- En el archivo
.csproj
abierto, busque la cadena.resx
, verá un bloque de configuraciones allí. Eso es algo así como los códigos de abajo. -
PublicResXFileCodeGenerator
por 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
.csproj
editado - Haga clic derecho nuevamente en su proyecto en el
solution explorer
y seleccione Recargar proyecto - Ahora abre tu archivo
.resx
y disfruta;)
Nota: use el nombre de su archivo de recursos en lugar de
MyResourceFile