61

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

我尝试将所有 XML 文件的构建操作标记为“AndroidResource”,但 Resource.designer.cs 仍然不会使用新值进行更新。

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

4

17 回答 17

85

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

于 2013-11-01T17:08:04.407 回答
24

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

2.点击CTRL+A(全选)

3.点击Del(全部删除)

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

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

于 2015-06-25T08:53:37.697 回答
18

我发现由于项目文件的更改,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 中创建的一个新项目中获取了这些条目,该项目正在运行,这可能是最简单的方法。

于 2014-07-17T08:30:22.803 回答
6

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

于 2016-09-28T18:47:05.163 回答
4

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

这将重新创建文件。

“ResXFileCodeGenerator”必须在 Resources.resx 文件属性中设置(但默认设置) 在此处输入图像描述

于 2019-12-10T15:07:32.963 回答
3

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

就我而言,我的一个控件没有 Id,因此导致 Resource.Designer.cs 没有更新(但未能静默更新)。 在此处输入图像描述

一旦我添加了一个 ID,文件就会再次开始更新。

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

于 2017-05-04T10:10:08.163 回答
3

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

方法2:关闭应用即visual studio,映射到c-> users-> -> AppData (Hidden File) -> delete xamarin file from local and roaming

于 2017-04-21T08:06:22.253 回答
1

Resource.designer.cs 文件夹将更新为@Brendan Zagaeski 提到的。

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

我最终通过将生成的“布局”文件夹重命名为“布局”来解决它(我对可绘制对象和值做了同样的事情)。之后,只需再次构建项目,Resource.Designer 即可成功更新。

希望这可以帮助某人。

于 2014-06-05T02:01:55.077 回答
1

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

于 2017-04-26T15:55:34.337 回答
1

确保您的根包名称正确。

于 2016-09-07T01:50:03.633 回答
0

这比看起来容易...

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

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

于 2013-12-12T14:41:56.100 回答
0

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

于 2015-03-14T23:17:38.073 回答
0

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

希望这对某人有帮助!

于 2017-01-30T02:58:32.320 回答
0

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

于 2021-12-29T18:06:44.950 回答
0

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

于 2019-04-16T10:31:31.547 回答
0

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

于 2018-03-08T14:51:57.673 回答
-4

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

于 2013-08-21T19:34:50.027 回答