Как включить файлы активов в библиотеку .NET Standard 1.4 на платформе ARM?

Кто-нибудь знает, как правильно ссылаться на ресурсы, если платформа ARM? В x86 я могу использовать папку appX со ссылкой, но она не работает на ARM

спасибо


person Lockness    schedule 17.11.2017    source источник


Ответы (1)


Если вы хотите получить файлы активов из библиотеки .NET Standard, вам нужно будет пометить файл как EmbeddedResource и Copy Always.

введите здесь описание изображения

Затем вам нужно добавить метод для получения этих файлов в классе библиотеки .NET Standard. Например:

namespace ClassLibrary1
{
    public class Class1
    {
        public static Stream GetImage()
        {
            var assembly = typeof(Class1).GetTypeInfo().Assembly;
            Stream stream = assembly.GetManifestResourceStream("ClassLibrary1.Assets.dog.jpg");
            return stream;
        }
    }
}

Обратите внимание на эту строку assembly.GetManifestResourceStream("ClassLibrary1.Assets.dog.jpg");

ClassLibrary1 — это пространство имен, Assets — папка Assets в проекте библиотеки, dog.jpg — файл.

введите здесь описание изображения

В моем примере я помещаю файлы изображений в папку Assets, если положить их в корневую директорию проекта, то эта строка должна быть такой:

assembly.GetManifestResourceStream("ClassLibrary1.dog.jpg");

Вы можете использовать следующий код, чтобы увидеть все встроенные ресурсы:

foreach (var res in assembly.GetManifestResourceNames())
{
    System.Diagnostics.Debug.WriteLine("found resource: " + res);
}

После этого в вашем основном проекте вы можете вызвать этот метод для получения этих файлов.

person Xie Steven    schedule 20.11.2017
comment
Спасибо за ответ, но я хотел бы использовать эти активы в xaml, как в проекте uwp, какое-нибудь решение для этого? - person Lockness; 20.11.2017
comment
@Lockness Вы не можете использовать эти файлы на странице xaml непосредственно из стандартной библиотеки .NET. - person Xie Steven; 20.11.2017
comment
Спасибо за ответ - person Lockness; 20.11.2017
comment
ну да можно! ознакомьтесь с этим руководством — docs.microsoft.com/en-us/nuget/guides/ - person karann - MSFT; 16.01.2018