11

我正在使用构建工具 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 Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\Roslyn\Microsoft.CSharp.Core.targets" 未找到。确认声明中的路径正确,并且该文件存在于磁盘上。

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

4

5 回答 5

5

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

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

于 2018-09-18T12:15:00.360 回答
2

根据这个GitHub 问题,您需要设置$(RoslynTargetsPath).

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

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

于 2018-09-11T16:16:39.890 回答
2

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

于 2020-04-27T14:59:29.363 回答
1

首先建议您使用 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项目文件中相应的导入部分。

于 2017-11-14T08:19:53.983 回答
0

我更新到 TFS2018 并且问题得到了解决。

于 2017-11-24T23:52:37.783 回答