【问题标题】:Microsoft.CSharp.Core.targets missing缺少 Microsoft.CSharp.Core.targets
【发布时间】:2018-04-25 21:16:29
【问题描述】:

我正在使用构建工具 2017 在 TFS2017 Update 3 上构建 Web 服务项目。我收到以下错误

C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\Microsoft.CSharp.CurrentVersion.targets(322,5): 错误 MSB4019:导入的项目“C:\Program Files (x86)\Microsoft 视觉的 Studio\2017\Enterprise\MSBuild\15.0\Bin\Roslyn\Microsoft.CSharp.Core.targets" 没有找到。确认声明中的路径是 正确,并且该文件存在于磁盘上。

我需要采取哪些步骤来修复此错误?

【问题讨论】:

  • 您能在“C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\Roslyn”文件夹中看到“Microsoft.CSharp.Core.targets”文件吗?

标签: c# tfs msbuild nuget visual-studio-2017-build-tools


【解决方案1】:

如果您在尝试弄清楚为什么在 Ubuntu 20.04 中收到类似消息后从 google/duckduckgo 访问此页面,也许这会有所帮助:https://askubuntu.com/a/1231973/1073658 (tl;dr apt install mono-roslyn from mono-项目的回购)

【讨论】:

    【解决方案2】:

    在我的例子中,打开现有的解决方案文件(带有.sln 扩展名),它安装了所有缺少的依赖项。

    否则手动检查 nuget.org 是否缺少目标包并安装它们(例如 MSBuild.Microsoft.VisualStudio.Web.targets)。

    【讨论】:

      【解决方案3】:

      按照这个GitHub issue,你需要设置$(RoslynTargetsPath)

      如果计算机上安装了 MSBuild,并且您的测试在 Visual Studio 开发人员命令提示符中运行,那么您无需执行任何操作。但是,MSBuild 15.0 不再将自己置于注册表中,这使得 MSBuild 无法找到自己。这是因为 Visual Studio 的一项要求,您可以在其中进行多个并行安装。在这种情况下,MSBuild 将为每个 Visual Studio 实例安装一次。 MSBuild 现在通过查看 VS 命令提示符设置的环境变量来发现自己。

      如果您想通过组合我们的包和执行完整项目评估所需的所有其他包来完全重新分发 MSBuild,则必须在加载项目之前设置 RoslynTargetsPath。您可能会争辩说这是 NuGet 的一个问题,因为所有包的 <contentFiles /> 都位于输出目录的根目录,并且您无法为某些包指定子目录。

      【讨论】:

      • 您能否详细介绍如何设置 $(RoslynTargetsPath) ?尤其是在 Mac 上?
      【解决方案4】:

      我更新到TFS2018,问题解决了。

      【讨论】:

        【解决方案5】:

        首先建议您直接在带有 TFS 构建服务帐户的构建代理上使用 msbuild 命令。如果问题与您的代理环境或您的 TFS 构建定义有关,这将缩小范围。

        根据您的错误信息,C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\Roslyn\Microsoft.CSharp.Core.targets 的路径正在寻找 Visual Studio 2017 的路径。

        但是,对于构建工具,路径不同应该是C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin\Roslyn

        似乎您还没有在构建代理上安装 VS2017。这可能是问题的根本原因。

        最简单的解决方案是在构建代理上安装 VS2017。请注意,您需要重新配置构建代理或重新启动构建代理服务以捕获这些新功能。否则,您需要更改 .csproj 项目文件中相应的导入部分。

        【讨论】:

        • 嗨@PatrickLu-MSFT 我确实在构建服务器上安装了 VS2017 并重新配置了代理。但是,在构建时,我仍然得到 C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\Microsoft.CSharp.CurrentVersion.targets(322,5): Error MSB4019: The imported project "C :\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\Roslyn\Microsoft.CSharp.Core.targets" 未找到。确认 声明中的路径正确,并且该文件存在于磁盘上。
        • 并且项目文件有如下import语句
        • @doorman 你能通过构建代理上的相应路径吗?如果有这个火与否?如果没有,请尝试手动将文件复制到该路径,然后再次构建,看看这是否可以解决问题。此外,您还可以在构建日志中设置system.bug=true 变量以获取更详细的日志以进行故障排除。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-08-17
        • 2021-09-22
        • 2021-05-14
        • 2014-01-23
        • 2020-06-22
        • 2012-04-21
        • 2019-12-15
        相关资源
        最近更新 更多