【问题标题】:Resource.designer.cs Not UpdatingResource.designer.cs 未更新
【发布时间】:2016-11-02 04:17:36
【问题描述】:

电脑规格

  • Visual Studio 2015 企业更新 3
  • Xamarin 4.2.0.719
  • Xamarin.Android 7.0.1.6
  • Xamarin.iOS 10.2.0.4

问题详情

Resource.designer.cs 未在 Xamarin.Droid 项目中更新。

  1. 试图删除
  2. 已尝试清理内容并重建
  3. 重启解决方案
  4. 重启电脑
  5. 创建新项目。
  6. 将文件重新添加为 Android 资源
  7. 试图删除 Resources.Designer.cs 文件

我尝试了以下所有帖子,我可能认为这是重复帖子:

还尝试了 Xamarin 的官方链接:

我从 Codeproject 尝试了这个,上面写着 [已解决] 但对我自己也不起作用:

【问题讨论】:

  • 您找到任何解决方案了吗?我也有同样的问题
  • 是的。检查项目上的重复 ID。由于 Id 问题,未生成文件。有 2 个同名的 Id。
  • 你的意思是资源文件里有id吗? (这应该不是问题吧?)还是您的意思是项目文件中的文件名?
  • 两者都不是。我的意思是在 axml 文件中的 @+ids 中。如果有任何重复,它将使资源生成崩溃。例如:file1.axml 有一个 Id abc,而 file2.axml 有一个 Id abc。它会崩溃。
  • 对我不起作用:/ 谢谢你的帮助!

标签: c# xamarin xamarin.android android-resources


【解决方案1】:

我遇到了类似的问题,资源文件中存在错误,导致 resource.designer.cs 文件无法更新。就我而言,问题是我添加了一些文件名中包含非法字符的图像。

但是重要的是如何发现您的具体问题,因为来自 Android 资产和打包工具的错误不会显示在 Visual Studio 的错误列表选项卡中。我必须将构建输出详细程度设置为诊断,然后搜索任务“Aapt”。找到 aapt 部分后,我在该部分的底部找到了允许我定位和修复错误的信息。我已将其包含在日志部分:

Executing package -f -m -M C:\Users\billm\AppData\Local\Temp\2xfnjt4r.kaj\manifest\AndroidManifest.xml -J C:\Users\billm\AppData\Local\Temp\2xfnjt4r.kaj ...    
    res\drawable\keyboard-backspace-long.png: Invalid file name: must contain only [a-z0-9_.] (TaskId:113)
    res\drawable\keyboard-backspace-long.png: Invalid file name: must contain only [a-z0-9_.] (TaskId:113)
    res\drawable\keyboard-backspace-xlong.png: Invalid file name: must contain only [a-z0-9_.] (TaskId:113)
    res\drawable\keyboard-backspace-xlong.png: Invalid file name: must contain only [a-z0-9_.] (TaskId:113)
    res\drawable\keyboard-backspace.png: Invalid file name: must contain only [a-z0-9_.] (TaskId:113)
    res\drawable\keyboard-button.png: Invalid file name: must contain only [a-z0-9_.] (TaskId:113)
    Done executing task "Aapt". (TaskId:113)

【讨论】:

    【解决方案2】:

    方法1: 从项目中删除文件,并删除 bin 和 obj 文件,然后构建项目,它应该 100% 正常工作,因为如果我遇到同样的问题,如果这不起作用总是有另一个选项

    方法2: 关闭应用程序,即视觉工作室,映射到 c-> users-> -> AppData (隐藏文件) -> 从本地和漫游中删除 xamarin 文件

    【讨论】:

      【解决方案3】:

      不确定这是否是放置这个答案的地方,但我想我会分享这个,特别是针对 VS 2017 用户。

      如果您将 Xamarin Android 版本 8.3.0.19 或 Visual Studio 2017 更新到版本 15.7.2,则必须将资源的属性 CustomTool 设置为 MSBuild:UpdateGeneratedFiles

      选择solution explorer中的资源,按f4/右键单击并从上下文菜单中选择属性,并将属性CustomTool设置为MSBuild:UpdateGeneratedFiles。 Clean+Build 或 Rebuild 项目,您应该能够看到 Resources.Designer.cs 中更新的值

      【讨论】:

        【解决方案4】:

        对我来说,这与错误有关:

        “aapt.exe”以代码 1 退出。

        原因是我的项目中有一个包含连字符或空格的文件,导致Resources.Designer.cs 停止更新。

        在我的情况下,文件存在的原因是我通过在解决方案中复制它来创建备份,这导致它从 my_xml_file.xml 复制到 my_xml_file - Copy.xml

        【讨论】:

          【解决方案5】:

          如果 Xamarin resource.designer 没有更新,一个简单的解决方案是:

          1. 创建一个新项目
          2. 删除 Main axml 文件和 MainActivity.cs
          3. 添加新文件,即新布局和活动。

          一旦你生成了你的 axml,确保在你开始在你的新活动中编码之前保存。

          希望这会对某人有所帮助

          【讨论】:

          • 尝试了上面文章中指定的所有方法。仍未解决。
          • 你找到解决办法了吗?
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-05-02
          • 2013-05-23
          • 1970-01-01
          • 1970-01-01
          • 2018-05-29
          • 2013-08-23
          相关资源
          最近更新 更多