从Rider中的“添加Web引用”生成代码时出现“重复编译项”错误

时间:2019-05-23 08:39:13

标签: .net-core rider web-reference

我正在创建一个使用Rider IDE消耗Web服务的.NET核心API。

我创建了一个新的csproj FooBar.Service,并添加了Web参考。 FooBar.Service.csproj文件如下:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>netstandard2.0</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <WCFMetadata Include="Service References" />
  </ItemGroup>

  <ItemGroup>
    <WCFMetadataStorage Include="Service References\FooBar" />
  </ItemGroup>

  <ItemGroup>
    <None Include="App.config" />
    <None Include="Service References\FooBar\FooBar.svcmap">
      <Generator>WCF Proxy Generator</Generator>
      <LastGenOutput>FooBar.cs</LastGenOutput>
    </None>
    <None Include="Service References\FooBar\FooBar.webref" />
    <None Include="Service References\FooBar\FooBar.wsdl" />
  </ItemGroup>

  <ItemGroup>
    <Compile Include="Service References\FooBar\FooBar.cs">
      <AutoGen>True</AutoGen>
      <DesignTime>True</DesignTime>
      <DependentUpon>FooBar.svcmap</DependentUpon>
    </Compile>
  </ItemGroup>

  <ItemGroup>
    <Reference Include="System.ServiceModel" />
  </ItemGroup>

</Project>

生成的代码似乎正确,但是出现此错误:

  

包括重复的“编译”项。默认情况下,.NET SDK包含项目目录中的“编译”项。您可以从项目文件中删除这些项目,也可以将“ EnableDefaultCompileItems”属性设置为“ false”(如果要在项目文件中明确包含这些项目)。有关更多信息,请参见https://aka.ms/sdkimplicititems。重复的项目是:“服务参考\ FooBar \ FooBar.cs”

我已经阅读了有关此问题的另一个问题:答案是有2个同名的编译项。如果我理解该错误消息,则默认情况下首先添加该文件,因为该文件位于.csproj的文件夹中,然后由<Compile Include="Service References\FooBar\FooBar.cs">项再次添加。

我想这是Rider Web服务代码生成的一个错误,但是在不弄乱自动生成的代码的情况下,有什么变通办法?我知道我可以停用{{1 }}标志,但我不想这样做,因为我更喜欢这种行为。

我尝试用this answer中的EnableDefaultCompileItems替换Include,但是随后出现一堆编译错误,提示:类型或名称空间名称'尽管“服务模型”已包含在内,但它在“系统”命名空间中不存在(您是否缺少程序集引用?)。

0 个答案:

没有答案