c# - una - librerias de visual studio 2017
Recurso incrustado en las bibliotecas.Net Core (2)
Acabo de empezar a buscar en .Net Core, y no veo recursos clásicos ni nada que se parezca a recursos. En las bibliotecas de clases .Net clásicas, pude agregar, por ejemplo, archivos de texto con algún script a mi proyecto, de lo que puedo agregar estos archivos a los recursos del proyecto. Después de eso podría usarlo fácilmente de la siguiente manera:
Connection.Execure(Properties.Resources.MySuperScript);
Veo que no hay tal característica en las bibliotecas .Net Core, al menos no la veo. ¿Existe una alternativa en .Net Core para almacenar algunos datos estadísticos como un recurso incorporado en las bibliotecas? ¿Y cómo usar eso si existe?
Ahora que project.json
está en desuso, debe especificar esto en el archivo .csproj
.
<ItemGroup>
<EmbeddedResource Include="_fonts/*.ttf" />
</ItemGroup>
Puede usar un comodín como se muestra, o simplemente enumerar los archivos explícitamente.
ACTUALIZAR:
.NET Core 1.1 y .csproj
posteriores abandonaron project.json
y volvieron a los archivos .csproj
. Esto cambia el Paso 2, pero no tanto. Las líneas necesarias son muy similares:
"buildOptions": {
"embed": {
"include": [
"_fonts/*.ttf"
]
}
},
Puede haber una forma *.tff
similar; inconfirmado.
Los pasos 1 y 3 se mantienen sin cambios.
Para usar los recursos incrustados en el proyecto .NET Core 1.0, haga lo siguiente:
1.- Agrega tus archivos incrustados como de costumbre.
Ejemplo: algunos archivos FONT en un directorio llamado "_fonts"
2.- Modifique "project.json" para incluir los recursos relacionados.
En mi caso:
var assembly = typeof(MyLibrary.MyClass).GetTypeInfo().Assembly;
Stream resource = assembly.GetManifestResourceStream("MyLibrary._fonts.OpenSans.ttf");
3.- Acceder al recurso incorporado en el código.
var assembly = typeof(MyLibrary.MyClass).GetTypeInfo().Assembly; Stream resource = assembly.GetManifestResourceStream("MyLibrary._fonts.OpenSans.ttf");
El punto clave es usar el nombre correcto en la llamada "GetManifestResourceStream". Debe usar [nombre del ensamblaje]. [Directorio]. [Nombre del archivo].
Espero que ayude a alguien por ahí ^ _ ^.