Xamarin Android - 如何重建Resource.designer.cs

问题描述 投票:42回答:15

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

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

什么事件触发生成此文件?

xamarin xamarin.android xamarin-studio
15个回答
14
投票

我发现由于项目文件的更改,Xamarin工作室将停止重新生成Resources文件。顶级构建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中创建的一个新项目中抓取了这些条目,这项工作可能是最简单的方法。


1
投票

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


0
投票

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


0
投票

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

希望这有助于某人!


0
投票

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


0
投票

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


-4
投票

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


55
投票

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


15
投票

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

2.单击CTRL + A(全选)

3.点击Del(全部删除)

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

你现在得到第一栋楼的错误。但您的Resource.designer.cs文件已重新生成。您现在可以再次构建。其作品。


5
投票

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


3
投票

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

在我的情况下,我的一个控件没有Id,因此它导致Resource.Designer.cs没有更新(但没有默默地这样做)。 enter image description here

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

注意:您可能希望在找到问题后将构建输出详细程度恢复正常。


2
投票

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

方法2:关闭应用程序,即visual studio,映射到c-> users-> - > AppData(隐藏文件) - >从本地删除xamarin文件并漫游


1
投票

它比看起来容易......

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

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


1
投票

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

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

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

希望这有助于某人。


1
投票

确保您的根包名称正确无误。

© www.soinside.com 2019 - 2024. All rights reserved.