【问题标题】:Creating and accessing a resource in Xamarin.Forms Android project to display Build Date在 Xamarin.Forms Android 项目中创建和访问资源以显示构建日期
【发布时间】:2018-03-11 23:38:59
【问题描述】:

试图让this solution 工作,我无法弄清楚我的实现有什么问题:

我不清楚如何“将 BuildDate.txt 文件添加为资源”以及如何从我的 PCL ViewModel 类中访问它:

我在 MyProject.Droid/Resources 中添加了一个 BuildDate.txt 文件,但我无法将其构建操作添加到“Android 资源”,因为它显示了此错误:

obj\Debug\res builddate.txt 资源目录名无效

构建成功并有效地将 BuildDate.txt 更新为“11/03/2018 19:01:29,11”。

没有一个引用的解决方案对我有用,但它们不是 Xamarin.Forms 特定的......

是否有人已经在 Xamarin.Forms Android 项目中成功添加并访问了任何文本文件资源?

【问题讨论】:

  • 您能否解释一下您是如何得出异常与ResourceDictionary 相关的结论的? ResourcesDictionary,当您使用 Application.Current.Resources["BuildDate"] 时,您正在访问它
  • Camilo :我编辑了我的帖子,因为我的实际问题是关于访问这些数据的任何方式......
  • Benl:不确定添加整个 MSBuild 包只是为了让构建日期自动显示在视图中的相关性...

标签: c# android visual-studio date xamarin.forms


【解决方案1】:

如果您仍然感兴趣,我有一个似乎通常对我有用的解决方案,用于在 Xamarin.Forms 应用程序中创建构建日期/时间。

我对创建资源文件感到困惑,然后想——也许我可以节省一步。我的想法是在预构建步骤中创建一个 SOURCE 文件。对我来说,这似乎更简单。

首先,在SHARED项目中创建一个类:

namespace MyProj {
    public partial class BuildDetails {
        static string buildDate = "build_date";

        public static string dispBuildDate() {
            getBuildDate();
            return buildDate;
        }
    static partial void getBuildDate();
}

}

然后,在 Android 项目属性中,在 Build Events 选项卡上,将其作为“预构建事件命令行:

echo namespace MyProj { >"$(ProjectDir)\BuildDetails.cs
echo public partial class BuildDetails {  >>"$(ProjectDir)\BuildDetails.cs
echo static partial void getBuildDate() { >>"$(ProjectDir)\BuildDetails.cs
echo    buildDate = "%date% %time%" ; >>"$(ProjectDir)\BuildDetails.cs
echo } } }  >>"$(ProjectDir)\BuildDetails.cs

这有点难看,但它似乎对我有用(并且应该适用于所有项目类型)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-23
    • 1970-01-01
    • 2013-08-08
    • 2010-12-08
    相关资源
    最近更新 更多