亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網(wǎng)為廣大站長提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.430618.com 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

引言:

按core傳統(tǒng)方式添加 AddJsonFile("Appsettings.json") 在windows平臺和ssr工作正常,但是在 IOS 和 Android 無法用這種方式,因?yàn)橘Y源生成方式不一樣. 使用內(nèi)置資源方式不夠靈活而且 ios 平臺會提示不能復(fù)制 json 文件到目錄,于是進(jìn)行了幾天的研究,終于能正確使用了.

 

資源文件夾

  1. 官方工程 ResourcesRaw文件夾 AboutAssets.txt 文件說明
您希望與應(yīng)用程序一起部署的任何原始資產(chǎn)都可以放置在此目錄(和子目錄)。 將資產(chǎn)部署到您的應(yīng)用程序, 由 `.csproj` 中的以下 `MauiAsset` 構(gòu)建操作自動處理。

     <MauiAsset Include="ResourcesRaw**" LogicalName="%(RecursiveDir)%(Filename)%(Extension)" />

這些文件將與您的包一起部署,并且可以使用 Essentials 訪問:

    async Task LoadMauiAsset()
    {
        using var stream = await FileSystem.OpenAppPackageFileAsync("AboutAssets.txt");
        using var reader = new StreamReader(stream);

        var contents = reader.ReadToEnd();
    }

復(fù)制一份txt文件按操作復(fù)現(xiàn)成功.

  1. 直接丟入 appsettings.json 編譯到ios平臺提示錯(cuò)誤不能復(fù)制 json 文件到目錄, 經(jīng)google,找到方案,需要項(xiàng)目文件屬性中 Remove 文件 <Content Remove="appsettings.json" />

相關(guān)錯(cuò)誤提示

The path 'XXXXXXXappsettings.json' would result in a file outside of the app bundle and cannot be used.

最終方案:

  • appsettings.json文件直接放工程根目錄
  • 文件屬性生成操作為 MauiAsset 和 不復(fù)制
  • 需要在項(xiàng)目屬性中 Remove 文件

 

項(xiàng)目文件

    <ItemGroup>
      <Content Remove="appsettings.json" />
    </ItemGroup>
     
    
    <ItemGroup>
      <MauiAsset Include="appsettings.json">
        <CopyToOutputDirectory>Never</CopyToOutputDirectory>
      </MauiAsset>
    </ItemGroup> 

讀取配置文件代碼

        async static Task<Stream> LoadMauiAsset()
        {
            try
            {

                using var stream = await FileSystem.OpenAppPackageFileAsync("appsettings.json");
                using var reader = new StreamReader(stream);

                var contents = reader.ReadToEnd();
                Console.WriteLine("OpenAppPackageFileAsync => " + contents);
                return stream;
            }
            catch (Exception e)
            {
                Console.WriteLine("OpenAppPackageFileAsync Exception => " + e.Message);
            }
            return null;
        }

附加到 builder.Configuration

var stream = LoadMauiAsset().Result; 
builder.Configuration.AddJsonStream(stream);

附:使用內(nèi)置資源方式

需要在項(xiàng)目屬性中設(shè)置生成操作為嵌入資源

<ItemGroup>
  <EmbeddedResource Include="appsettings.json" />
</ItemGroup>

代碼 BlazorMaui 為工程名

var a = Assembly.GetExecutingAssembly();
using var stream = a.GetManifestResourceStream("BlazorMaui.appsettings.json");
builder.Configuration.AddJsonStream(stream);

項(xiàng)目地址

https://github.com/densen2014/BlazorMaui

https://gitee.com/densen2014/BlazorMaui

知識共享許可協(xié)議

本作品采用 知識共享署名-非商業(yè)性使用-相同方式共享 4.0 國際許可協(xié)議 進(jìn)行許可。歡迎轉(zhuǎn)載、使用、重新發(fā)布,但務(wù)必保留文章署名AlexChow(包含鏈接:
https://github.com/densen2014 ),不得用于商業(yè)目的,基于本文修改后的作品務(wù)必以相同的許可發(fā)布。如有任何疑問,請與我聯(lián)系 。

分享到:
標(biāo)簽:NET
用戶無頭像

網(wǎng)友整理

注冊時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定