导入文件' xxx.targets'导致循环依赖

时间:2018-01-25 10:06:19

标签: c# msbuild nuget

我有一个名为&#34的NuGet包; Contoso.Library"目标文件:" /build/Contoso.Library.targets"

<Project Sdk="Microsoft.NET.Sdk">
  <ItemGroup>
    <DotNetCliToolReference Include="dotnet-xunit" Version="2.3.0" />
  </ItemGroup>
</Project>

但是,当我尝试构建包含此项目的项目时,我收到以下错误:

  

导入文件&#34; C:\ Program Files \ dotnet \ sdk \ 2.1.2 \ Sdks \ Microsoft.NET.Sdk \ Sdk \ Sdk.targets&#34;进入文件&#34; C:\ Users \ rb.nuget \ packages \ contoso.library \ 1.0.0 \ build \ contoso.library.targets&#34;导致循环依赖。 C:\ Users \用户rb.nuget \包\ contoso.library \ 1.0.0 \构建\ contoso.library.targets

enter image description here

我已确认如果我将目标文件重命名为&#34; contoso.library.targets.xxx&#34;这个错误消失了,证明目标文件是问题所在。

供参考,这是使用Contoso.Library的项目的项目文件:

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

  <PropertyGroup>
    <TargetFramework>net46</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Contoso.Library" Version="1.0" />
  </ItemGroup>

</Project>

2 个答案:

答案 0 :(得分:0)

事实证明答案实际上非常简单 - 只需从目标文件中的Project元素中删除“Sdk”属性:

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

变为

<Project>

答案 1 :(得分:0)

相同的错误和相同的解决方案(感谢@RB。!),但是我使用的是Directory.Build.props文件而不是目标文件。

我的错误:

导入文件“ C:\ Program Files \ dotnet \ sdk \ 3.1.401 \ Sdks \ Microsoft.NET.Sdk \ Sdk \ Sdk.props” 文件“ << em> snip > \ Directory.Build.props”会产生一个循环 依赖

确切的解决方案:
我从Sdk="Microsoft.NET.Sdk"中删除了Directory.Build.props属性,并且项目重建正确。

HTH!