【问题标题】:*.targets cannot be imported again. It was already imported*.targets 无法再次导入。已经导入了
【发布时间】:2018-02-08 07:24:53
【问题描述】:

我在 VS 2017 中构建了 UWP 应用程序,我的解决方案中的许多项目都有如下构建警告。如何摆脱它们?

警告“C:\Program Files (x86)\MSBuild\15.0.Net\CoreRuntime\Microsoft.Net.CoreRuntime.targets”无法再次导入。它已经导入到“C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Microsoft.Common.targets\ImportAfter\Microsoft.Net.CoreRuntime.ImportAfter.targets (17,3)” .这很可能是构建创作错误。随后的导入将被忽略。 [D:\Projects\HA4IoT\Controllers\HA4IoT.Controller\HA4IoT.Service.csproj] HA4IoT.Tests
警告“C:\Program Files (x86)\MSBuild\15.0.Net\CoreRuntime\Microsoft.Net.CoreRuntime.Settings.targets”无法再次导入。它已经导入到“C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Microsoft.Common.targets\ImportBefore\Microsoft.Net.CoreRuntime.ImportBefore.targets (17,3)” .这很可能是构建创作错误。随后的导入将被忽略。 [D:\Projects\HA4IoT\DNF\HA4IoT.Extensions.Tests\HA4IoT.Extensions.Tests.csproj] HA4IoT.Controller.Dnf
警告“C:\Users\dnf.nuget\packages\microsoft.net.native.compiler\1.6.3\tools\Microsoft.NetNative.targets”无法再次导入。它已在“C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Microsoft.Common.targets\ImportAfter\Microsoft.NetNative.ImportAfter.targets (16,3)”中导入。这很可能是构建创作错误。随后的导入将被忽略。 [D:\Projects\HA4IoT\Controllers\Examples\HA4IoT.Controller.Main\HA4IoT.Controller.Main.csproj] HA4IoT.Controller.Main

【问题讨论】:

  • 您是否正在运行最新版本的 VS 2017,例如15.3 还是 15.4 预览版? AFAIK 此问题已在 RTM 之前解决。你也可以尝试修复VS。
  • 我已经在 VS 2017 15.3.3 和 15.4 上完成了清理和重建,也完成了 15.3.3 的清理安装,但警告仍然存在
  • 这是因为在旧版本中创建的 cs 文件然后迁移到 VS 2017。我遇到了同样的问题。我所做的只是在 VS 2017 中创建一个新的解决方案,添加 nuget 包并编辑 cs 文件以匹配在 VS 2017 中创建的新 cs 文件。相当 hacky 但可以完成工作。
  • 我想你说的是csproj而不是cs?我不确定你在那些文件中编辑了什么?您添加了新项目并将文件移动到其中或更新了旧文件中的特定内容?

标签: msbuild uwp visual-studio-2017


【解决方案1】:

如何摆脱它们?

我找到the work-around of this question on MSDN

使用条件来检查考虑项目文件中定义的唯一属性是否存在。

<PropertyGroup>
  <TasksTargetsImported>true</TasksTargetsImpor‌​ted>
</PropertyGroup>

<Import Project="Tasks.targets" Condition=" '$(TasksTargetsImported)' == '' "/> 

希望这能有所帮助。

【讨论】:

    【解决方案2】:

    我删除了 .csproj 文件旁边的所有 nuget 目标和道具文件。这对我有用。现在所有警告都消失了。

    【讨论】:

    • 我在更新目标和最小版本后收到了警告,所以我的猜测是 .target.prop 文件曾经必须在项目中,但后来被分解到构建系统。
    【解决方案3】:

    卸载项目或编辑项目解决方案文件,然后检查整个项目文件并确保同一行没有重复两次。就我而言,在我遵循 Web.config 转换说明之后,我错误地添加了如下一行的额外行。你只是想确保你没有被骗。

    <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\WebApplications\Microsoft.WebApplication.targets" />
    

    【讨论】:

      【解决方案4】:

      我遇到错误“\PrefixFidelity\obj\PrefixFidelity.csproj.nuget.g.props(16,5): warning MSB4011: "..."这很可能是构建创作错误。后续导入将是忽略。”

      追踪到 obj 文件夹中的第二个 props 文件: PrefixFidelity.csproj.nuget.g.(2)props

      一旦删除该文件,错误就消失了

      【讨论】:

      • 欢迎来到 Stackoverflow!请格式化您的帖子以使其更具可读性(粗体、斜体、列表、代码缩进等)
      【解决方案5】:

      我在更新 VS2017 后使用 CLI 工具遇到了这个问题,

      解决方法是简单地删除 bin/obj 文件夹,而不是修改目标文件

      【讨论】:

        【解决方案6】:

        我在导入 azure 发布配置文件后遇到了这个问题。我的 .csproj 更新自:

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

        到:

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

        还原该更改会删除警告,并且发布过程仍然可以正常工作。 我正在使用 Visual Studio 2019,这是一个 Azure Functions 项目,针对 .net core 3.1。

        【讨论】:

          猜你喜欢
          • 2014-09-14
          • 1970-01-01
          • 1970-01-01
          • 2019-03-04
          • 2019-12-27
          • 1970-01-01
          • 2022-07-07
          • 2021-07-08
          • 2019-12-28
          相关资源
          最近更新 更多