迁移到.NET Standard后,是否包含了重复的“EmbeddedResource”项?

时间:2017-10-14 20:17:45

标签: xamarin.forms

使用VS 2017 15.4.0

遵循James Montemagno“升级到Xamarin.Forms到.NET标准”

https://channel9.msdn.com/Shows/XamarinShow/Snack-Pack-15-Upgrading-to-XamarinForms-to-NET-Standard?ocid=player

尝试清理/构建时收到错误:

严重级代码描述项目文件行抑制状态 包含错误重复的“EmbeddedResource”项目。 .NET SDK默认包含项目目录中的“EmbeddedResource”项。您可以从项目文件中删除这些项,或者如果要将它们显式包含在项目文件中,请将“EnableDefaultEmbeddedResourceItems”属性设置为“false”。有关更多信息,请参阅https://aka.ms/sdkimplicititems。重复的项目是:'App.xaml'; 'MainPage.xaml'App5.core C:\ Program Files \ dotnet \ sdk \ 2.0.2 \ Sdks \ Microsoft.NET.Sdk \ build \ Microsoft.NET.Sdk.DefaultItems.targets 274

有任何解决方案吗?

8 个答案:

答案 0 :(得分:9)

找到解决方案...... 右键单击我创建“App5”的新.NET Standard项目,然后选择Edit App5.csproj 我已从文件中删除了此代码,错误消失了。

      <ItemGroup>
  <EmbeddedResource Include="App.xaml">
    <Generator>MSBuild:UpdateDesignTimeXaml</Generator>
  </EmbeddedResource>
  <EmbeddedResource Include="MainPage.xaml">
    <Generator>MSBuild:UpdateDesignTimeXaml</Generator>
  </EmbeddedResource>
</ItemGroup>

答案 1 :(得分:3)

根据xamarin的bugzilla,在某些时候你 需要插入以使其能够使用新的csproj格式。

 <ItemGroup>
    <!-- https://bugzilla.xamarin.com/show_bug.cgi?id=55591 -->
    <None Remove="**\*.xaml" />

    <Compile Update="**\*.xaml.cs" DependentUpon="%(Filename)" />
    <EmbeddedResource Include="**\*.xaml" SubType="Designer" Generator="MSBuild:UpdateDesignTimeXaml" />
  </ItemGroup>

Source

我认为xamarin现在决定将它添加到默认的构建目标。

所以要修复它,你必须做以下事情:

  • 打开您的共享.csproj文件。

  • 删除与添加xaml页面和* .cs相关的所有项目组

  • 清理+重建。

答案 2 :(得分:3)

我发现了各种各样的建议,但是this answer在简洁和优雅方面对我来说都是最合适的:

  • 在解决方案资源管理器中,启用“显示所有文件”。这样会显示每个文件夹中的所有文件,包括从项目中排除的文件。

对于错误消息中列出的每个项目:

  • 从项目中排除
  • 包含在项目中

然后

  • 在解决方案资源管理器中,禁用“显示所有文件”。

答案 3 :(得分:1)

我的错误是我在运行带有应用程序的模拟器时添加了嵌入式资源。

Soo ...我在.csproj文件中自动添加了此文件:

<EmbeddedResource Include="**/*" />

将其删除,然后一切正常

答案 4 :(得分:0)

尝试使用以下步骤手动清洁它:

  • 关闭你的VS
  • 从iOS,Android和Common(您的项目名称)文件夹中删除bin和obj文件夹。
  • 从包文件夹中删除所有内容
  • 打开终端,导航到您的项目文件夹并输入nuget locals all -clear
  • 然后输入nuget restore

然后再次打开VS,让我知道问题是否仍然存在

答案 5 :(得分:0)

对我来说,问题出在一个文件名中。我在文件名中使用了下划线(_)。我正在使用文件名AppResource.zh_cn.resx。也许可以帮助某人。

答案 6 :(得分:0)

在我添加了两个字体文件作为嵌入式资源之后,在MS Visual Studio for Mac中发生了这种事。

这些文件以相同的前缀命名(Lora-Regular.ttf和Lora-Bold.ttf),并且看起来我的IDE确实处理这种错误。

实际上,以下奇怪的行已插入我的.csproj文件中:

<EmbeddedResource Include="**/*" />

我所做的就是删除此行,并且错误消失了。

答案 7 :(得分:0)

对我来说,卸载和重新加载项目再次奏效!