【问题标题】:Xamarin Android - How to rebuild Resource.designer.csXamarin Android - 如何重建 Resource.designer.cs
【发布时间】:2013-08-23 04:13:21
【问题描述】:

在 Xamarin Android 中 - 如何重新生成 Resource.designer.cs

我尝试将所有 XML 文件的 Build Action 标记为“AndroidResource”,但 Resource.designer.cs 仍然不会更新为新值。

生成此文件的事件触发器是什么?

【问题讨论】:

  • 重建没有帮助,这就是我在这里发帖的原因:(不确定这是否是一个已知的错误
  • 不幸的是,您将不得不尝试此处答案中的所有解决方法。这是一个错误(嗯,这可能是多年来的一系列错误),而且通常不容易修复。

标签: xamarin xamarin.android xamarin-studio


【解决方案1】:

在 Xamarin Studio 5.6(内部版本 273)和 Xamarin.Android 4.18.0 中,如果您从项目中手动删除了 Resource.designer.cs 文件,重建将重新生成 Resource.designer.cs,但不会 em> 将其添加回项目中。因此,在尝试重建一次后,该文件将出现在文件系统中,但不在项目中。要解决此问题,请将新生成的文件手动添加到项目的 Resources 文件夹中。

【讨论】:

  • 这确实有效 - 只需确保您的项目构建成功 - 如果存在构建错误,它将不会重新生成(即使错误与 Resource.designer.cs 时将拾取的资源有关)文件被重新生成)
  • +1 Xamarin Studio 5.5.2 / Xamarin.Android 4.18.0 仍然损坏
  • 我把文件找回来了,但是文件的大小是 0Kb,这意味着除了生成文件之外,Visual Studio 没有做任何事情。这个文件应该包含我的布局的所有信息
  • 预感我忽略了它。过了一会儿就好了。我在另一个布局上工作并继续开发。 5 分钟后,红色波浪线消失了。
【解决方案2】:

1.单击项目中的 Resource.designer.cs 文件。

2.点击CTRL+A(全选)

3.点击Del(全部删除)

4.清理并重建您的项目(如果您收到修改 Resource.designer.cs 的消息,请单击“全部同意”按钮)。

您现在收到第一座建筑物的错误。但是您的 Resource.designer.cs 文件已重新生成。您现在可以进行第二次构建。它的作品。

【讨论】:

  • 在尝试了有关此主题的大多数答案之后,这是重建资源的最简单方法。谢谢!
  • 我现在得到The name 'Resource' does not exist in the current context,所以它仍然没有重建。
  • @JonathanPeel 在第二次构建后不起作用?不要删除 Resource.designer.cs 只是清理它。
  • 我最终创建了一个新项目,并将所有内容添加回来。我是 Xamarin 的新手,就目前而言,这似乎更容易。谢谢。
【解决方案3】:

我发现 Xamarin studio 会因为项目文件的变化而停止重新生成资源文件。顶级构建 PropertyGroup 应包含

<RootNamespace>**Your_Root_Namespace**</RootNamespace>
<MonoAndroidResourcePrefix>Resources</MonoAndroidResourcePrefix>
<MonoAndroidAssetsPrefix>Assets</MonoAndroidAssetsPrefix>
<AndroidUseLatestPlatformSdk>True</AndroidUseLatestPlatformSdk>
<AndroidApplication>True</AndroidApplication>
<AndroidResgenFile>Resources\Resource.designer.cs</AndroidResgenFile>
<AndroidResgenClass>Resource</AndroidResgenClass>
<TargetFrameworkVersion>*your value here*</TargetFrameworkVersion>

由于某种原因,这些就消失了。如果您使用文本编辑器打开 Android 项目的 csproj 并添加这些条目,它似乎可以工作。我从我在 Xamarin Studio 中创建的一个新项目中获取了这些条目,该项目正在运行,这可能是最简单的方法。

【讨论】:

  • 很好的答案,伙计。同样的事情发生在我身上。不知道为什么,但这解决了它。
  • 我只需要添加行 &lt;AndroidResgenClass&gt;Resource&lt;/AndroidResgenClass&gt; 并且对我有用
【解决方案4】:

我解决了这个问题,从 Drawable 文件夹中的图像名称中删除字符“-”。

【讨论】:

    【解决方案5】:

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

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

    【讨论】:

    • 请 Rohit 你能解释一下这个 xamarin 文件的用途吗?
    • 上述Xamarin 文件是运行xamarin 项目时创建的临时文件。有时这会限制某些功能。因此,您可以在项目需要时创建的任何时间删除。很抱歉,我的个人生活很忙,很长时间没有工作。
    【解决方案6】:

    这似乎有多种原因。有助于揭示问题的一个步骤是在 Visual Studio 中增加构建输出的详细程度:工具 -> 选项 -> 构建和运行 -> 将“MSBuild 项目构建输出详细程度”更改为“诊断”。

    在我的情况下,我的一个控件没有 Id,因此导致 Resource.Designer.cs 没有更新(但未能静默更新)。

    添加 ID 后文件再次开始更新。

    注意:发现问题后,您可能希望将构建输出的详细程度改回正常。

    【讨论】:

    • 这对我有帮助!诊断对我来说太详细了,但将详细程度设置为正常有助于我找到导致问题的资源。
    【解决方案7】:

    在 Visual Studio 2019 中,如果您删除了 Resources.Designer.cs,只需在解决方案资源管理器中右键单击“Resources.resx”文件并选择“运行自定义工具”

    这将重新创建文件。

    “ResXFileCodeGenerator”必须在 Resources.resx 文件属性中设置(但默认设置)

    【讨论】:

    • 谢谢,但问题不在于 resx。
    【解决方案8】:

    Resource.designer.cs 文件夹将按照@Brendan Zagaeski 所述更新。

    但是,由于这似乎没有解决您的问题,因此 Xamarin 似乎无法识别您所做的任何更改。至少这是发生在我身上的事情。

    我最终通过将生成的“Layout”文件夹重命名为“layout” 解决了这个问题(我对 drawable 和 values 做了同样的事情)。之后,只需再次构建项目,Resource.Designer 即可成功更新。

    希望这对某人有所帮助。

    【讨论】:

      【解决方案9】:

      确保您的根包名称正确。

      【讨论】:

        【解决方案10】:

        它发生在我身上几次,每次问题都不是来自文件本身的生成,而是来自格式错误的 android 资源。 因此,如果在您合并存储库中的某些内容后发生这种情况,请仔细检查您的 android 资源(颜色、字符串等)是否存在任何格式错误的 XML 代码。

        【讨论】:

          【解决方案11】:

          这比看起来容易......

          http://docs.xamarin.com/recipes/android/general/projects/specify_default_namespace/

          您可以使用查找/替换重命名您的项目,但资源文件将使用主设置中为“默认命名空间”设置的任何内容,并且即使您手动编辑 Resource.designer 也会继续恢复为该名称。 cs 文件进出 Xamarin。

          【讨论】:

            【解决方案12】:

            要使重建项目解决方案正常工作,您必须编辑生成它的文件,然后重建项目。

            【讨论】:

              【解决方案13】:

              我遇到了完全相同的问题,但这里的答案都没有奏效。最后我发现我在一些尚不存在的布局中有一些图像参考。如果您的源路径损坏,Resource.Designer.cs 会停止更新而不会出现任何错误。最后,在删除参考图像后,问题得到解决,Resource.Designer.cs 得到了更新。

              希望这对某人有所帮助!

              【讨论】:

                【解决方案14】:

                对于仍然遇到此问题的人,当您查看错误列表时,某些错误可能会显示类似“未找到与给定 'toRightOf @id/(资源名称)'(或任何其他位置)匹配的资源在相对布局中)...您必须突出显示具有 id 的资源(在 axml 文件中)的所有代码,剪切,全部保存,然后粘贴并重建...然后您的 Resource.Designer.cs 将重新生成!希望有帮助。

                【讨论】:

                  【解决方案15】:

                  我在 Visual Studio 中遇到了同样的问题。 资源设计器文件仅在资源发生更改时生成 我应用了以下步骤来生成所需的 resource.designer.cs 文件 * 在资源中添加了一个虚拟图像 * 清理项目 * 重建项目 生成了新的 resource.designer.cs。

                  【讨论】:

                    【解决方案16】:

                    在我的情况下,问题是通过将资源页面中的访问修饰符从“无代码生成”切换到“公共”来解决的

                    【讨论】:

                      【解决方案17】:

                      如果您重建项目,生成的Resources.designer.cs 类将被更新。 您可以在以下位置找到此信息:http://docs.xamarin.com/guides/android/getting_started/hello%2C_world

                      【讨论】:

                      • 重建没有帮助,这就是我在这里发帖的原因:(不确定这是否是一个已知的错误。你知道是否有办法手动强制它?
                      • @KarthikMurugesan 不,抱歉。您是否有机会提供您的解决方案或测试项目来显示问题以便对其进行分析?
                      • 确实应该重新生成。此功能通常会停止工作。
                      猜你喜欢
                      • 1970-01-01
                      • 1970-01-01
                      • 2013-05-23
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      相关资源
                      最近更新 更多