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

AG7*_*G70 6 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 \的SDK\Microsoft.NET.Sdk \建立\ Microsoft.NET.Sdk.DefaultItems.targets 274

有解决方案吗?

AG7*_*G70 10

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

      <ItemGroup>
  <EmbeddedResource Include="App.xaml">
    <Generator>MSBuild:UpdateDesignTimeXaml</Generator>
  </EmbeddedResource>
  <EmbeddedResource Include="MainPage.xaml">
    <Generator>MSBuild:UpdateDesignTimeXaml</Generator>
  </EmbeddedResource>
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)

  • 它基本上包括目录内的所有项目,除非提到排除特定项目。 (2认同)

小智 8

我找到了各种建议,但这个答案对我来说无疑是最好的,无论是简单还是优雅:

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

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

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

然后

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


idc*_*ife 8

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

Soo...我已将其自动添加到 .csproj 文件中:

<EmbeddedResource Include="**/*" />
Run Code Online (Sandbox Code Playgroud)

删除它,然后一切都会好的


Dbl*_*Dbl 5

据在某些时候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>
Run Code Online (Sandbox Code Playgroud)

来源

我可以想象 xamarin 现在决定将其添加到默认构建目标中。

因此,要修复它,您必须执行以下操作:

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

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

  • 清理+重建。


Tom*_*rić 0

尝试按照以下步骤手动清洁:

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

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