包含重复的 'Compile' 项
Duplicate 'Compile' items were included
我刚刚将 SOAP 网络服务添加到新的 Asp .net 核心项目。当我尝试构建项目时,它会导致以下错误。
Microsoft.NET.Sdk.DefaultItems.targets(295, 5): [NETSDK1022] Duplicate 'Compile' items were included. The .NET SDK includes 'Compile' items from your project directory by default. You can either remove these items from your project file, or set the 'EnableDefaultCompileItems' property to 'false' if you want to explicitly include them in your project file. For more information, see https://aka.ms/sdkimplicititems. The duplicate items were: 'Service References/WebService/WebService.cs'
经过一些 Google 搜索后,我发现人们在重命名文件时出现了类似的错误。但是我没有重命名任何东西这是一个新项目我只添加了网络服务。
我检查了 .csproj 文件并得到了这个
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<EnableDefaultContentItems>false</EnableDefaultContentItems>
</PropertyGroup>
<ItemGroup>
<Reference Include="System.ServiceModel" />
</ItemGroup>
<ItemGroup>
<WCFMetadata Include="Service References" />
</ItemGroup>
<ItemGroup>
<WCFMetadataStorage Include="Service References\testing" />
<WCFMetadataStorage Include="Service References\WebService" />
</ItemGroup>
<ItemGroup>
<None Include="Service References\WebService\WebService.svcmap">
<Generator>WCF Proxy Generator</Generator>
<LastGenOutput>WebService.cs</LastGenOutput>
</None>
<None Include="Service References\WebService\WebService.webref" />
<None Include="Service References\WebService\WebService.wsdl" />
</ItemGroup>
<ItemGroup>
<Compile Include="Service References\WebService\WebService.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>WebService.svcmap</DependentUpon>
</Compile>
</ItemGroup>
</Project>
我只看到一个 Compile,所以我也很迷茫,我也明白什么是重复的。我确实尝试了 EnableDefaultCompileItems
,但没有解决问题。但是考虑到它的作用,即使它确实有效,我也不是很高兴。
如果能帮助理解此问题的原因并修复它,我们将不胜感激。
注意:我用的不是 Rider Visual studio
更新
我确实找到了这个 link 暗示它在骑手中的一个问题以及它如何添加网络服务 Rider Creates Incorrect Webservice References for ASP .NET Core projects.
不过我不确定这是同一个问题。因为我创建了一个 .net 核心网站 api 而不是 asp .net 核心项目。
更新 2
On the element in your project file, does it fix the issue if you change the "Include" to say "Update"?
以上是推特上的建议。它似乎消除了原始错误,但随后导致大量名称 space 错误。
WebService.cs(727, 82): [CS0234] The type or namespace name 'IClientChannel' does not exist in the namespace 'System.ServiceModel' (are you missing an assembly reference?)
从 rider issue 中获取一个关键信息,这可能是骑手如何添加网络服务的问题。
我引导至 windows 并启动 visual studio。我能够毫无问题地添加该服务。
然后我将该项目带回 Linux 和 Rider。
我开始主持这两个。我发现的第一个区别是 Rider 没有创建连接的服务目录及其所有内容。 ConnectedService.json
有点重要
第二个是对 .csproj 文件的一些重大更改
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="System.ServiceModel.Duplex" Version="4.4.*" />
<PackageReference Include="System.ServiceModel.Http" Version="4.4.*" />
<PackageReference Include="System.ServiceModel.NetTcp" Version="4.4.*" />
<PackageReference Include="System.ServiceModel.Security" Version="4.4.*" />
</ItemGroup>
<ItemGroup>
<WCFMetadata Include="Service References" />
</ItemGroup>
</Project>
基本上您需要添加适当的 PackageReference 并删除大量不需要的 ItemGroup。由于 .csproj 文件的验证方式发生了变化。
我发现我在 Google Cloud 运行 上遇到了这个错误。我发现我的控制器出现了命名空间错误。更正错误 NETSDK1022:不再包含重复 'Compile' 项。错误出现在 .Net Core 5 Web.API 上。我也在使用 Rider,它把我带到了这里。
我刚刚将 SOAP 网络服务添加到新的 Asp .net 核心项目。当我尝试构建项目时,它会导致以下错误。
Microsoft.NET.Sdk.DefaultItems.targets(295, 5): [NETSDK1022] Duplicate 'Compile' items were included. The .NET SDK includes 'Compile' items from your project directory by default. You can either remove these items from your project file, or set the 'EnableDefaultCompileItems' property to 'false' if you want to explicitly include them in your project file. For more information, see https://aka.ms/sdkimplicititems. The duplicate items were: 'Service References/WebService/WebService.cs'
经过一些 Google 搜索后,我发现人们在重命名文件时出现了类似的错误。但是我没有重命名任何东西这是一个新项目我只添加了网络服务。
我检查了 .csproj 文件并得到了这个
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<EnableDefaultContentItems>false</EnableDefaultContentItems>
</PropertyGroup>
<ItemGroup>
<Reference Include="System.ServiceModel" />
</ItemGroup>
<ItemGroup>
<WCFMetadata Include="Service References" />
</ItemGroup>
<ItemGroup>
<WCFMetadataStorage Include="Service References\testing" />
<WCFMetadataStorage Include="Service References\WebService" />
</ItemGroup>
<ItemGroup>
<None Include="Service References\WebService\WebService.svcmap">
<Generator>WCF Proxy Generator</Generator>
<LastGenOutput>WebService.cs</LastGenOutput>
</None>
<None Include="Service References\WebService\WebService.webref" />
<None Include="Service References\WebService\WebService.wsdl" />
</ItemGroup>
<ItemGroup>
<Compile Include="Service References\WebService\WebService.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>WebService.svcmap</DependentUpon>
</Compile>
</ItemGroup>
</Project>
我只看到一个 Compile,所以我也很迷茫,我也明白什么是重复的。我确实尝试了 EnableDefaultCompileItems
,但没有解决问题。但是考虑到它的作用,即使它确实有效,我也不是很高兴。
如果能帮助理解此问题的原因并修复它,我们将不胜感激。
注意:我用的不是 Rider Visual studio
更新
我确实找到了这个 link 暗示它在骑手中的一个问题以及它如何添加网络服务 Rider Creates Incorrect Webservice References for ASP .NET Core projects.
不过我不确定这是同一个问题。因为我创建了一个 .net 核心网站 api 而不是 asp .net 核心项目。
更新 2
On the element in your project file, does it fix the issue if you change the "Include" to say "Update"?
以上是推特上的建议。它似乎消除了原始错误,但随后导致大量名称 space 错误。
WebService.cs(727, 82): [CS0234] The type or namespace name 'IClientChannel' does not exist in the namespace 'System.ServiceModel' (are you missing an assembly reference?)
从 rider issue 中获取一个关键信息,这可能是骑手如何添加网络服务的问题。
我引导至 windows 并启动 visual studio。我能够毫无问题地添加该服务。
然后我将该项目带回 Linux 和 Rider。
我开始主持这两个。我发现的第一个区别是 Rider 没有创建连接的服务目录及其所有内容。 ConnectedService.json
有点重要
第二个是对 .csproj 文件的一些重大更改
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="System.ServiceModel.Duplex" Version="4.4.*" />
<PackageReference Include="System.ServiceModel.Http" Version="4.4.*" />
<PackageReference Include="System.ServiceModel.NetTcp" Version="4.4.*" />
<PackageReference Include="System.ServiceModel.Security" Version="4.4.*" />
</ItemGroup>
<ItemGroup>
<WCFMetadata Include="Service References" />
</ItemGroup>
</Project>
基本上您需要添加适当的 PackageReference 并删除大量不需要的 ItemGroup。由于 .csproj 文件的验证方式发生了变化。
我发现我在 Google Cloud 运行 上遇到了这个错误。我发现我的控制器出现了命名空间错误。更正错误 NETSDK1022:不再包含重复 'Compile' 项。错误出现在 .Net Core 5 Web.API 上。我也在使用 Rider,它把我带到了这里。