NuGet.targets“无法再次导入。它已经被导入警告

问题描述 投票:4回答:3

对于我的一些项目,我在Visual Studio 2013中收到此警告:

NuGet.targets" cannot be imported again. It was already imported

解决方案文件中的我的主WCF项目包含:

Project("{FAE04EC0-301F-11D3-BF4B-01C04F79EFBC}") = "WCF.Project", "Website\WCF.Project.csproj", "{AEFE3DD8-6E77-4449-9632-E2F0BADB6EBC}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuget", ".nuget", "{778ACFB4-FB04-4E26-93DD-260E7B406E48}"
    ProjectSection(SolutionItems) = preProject
        .nuget\NuGet.Config = .nuget\NuGet.Config
        .nuget\NuGet.exe = .nuget\NuGet.exe
        .nuget\NuGet.targets = .nuget\NuGet.targets
    EndProjectSection
EndProject

在我的WCF项目文件中,它具有:

<Import Project="$(SolutionDir).nuget\NuGet.targets" Condition="Exists('$(SolutionDir).nuget\NuGet.targets')" />
  <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
    <PropertyGroup>
      <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
    </PropertyGroup>
    <Error Condition="!Exists('$(SolutionDir).nuget\NuGet.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir).nuget\NuGet.targets'))" />
  </Target>
  <Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />

现在我看一下......看起来有些原因是因为某种原因?

c# asp.net visual-studio-2013 nuget packages
3个回答
3
投票

没关系,看起来这只是TFS中的一些奇怪的合并问题,是重复的线条。


2
投票

尽管这是一个古老的问题,但在将VS2015解决方案迁移到VS2017之后我遇到了完全相同的错误。清理NuGet缓存解决了这个问题(见图)。

VS2017 (partial) settings dialog.

HTH!

编辑:构建多个项目时重新出现问题。因此,可能更好的方法是将所有源移动到具有(可能!)相同名称或至少相同名称空间/程序集名称的新项目。比较转换/生成的VS2015和VS2017 .csproj文件,即使在下载丢失的NuGets之后,VS2017中的项目结构也更加简洁,不确定是否值得编辑每个.csproj而不是用新生成的替换它。


0
投票

对于可能有这个问题的其他人(比如我),也许这会有所帮助:

(卸载其他VS或清理道具文件夹)

VS Community - Nuget: targets and props warning about cannot be imported again

© www.soinside.com 2019 - 2024. All rights reserved.