无法导入“$(VSToolsPath)\...”
Could not import "$(VSToolsPath)\..."
我正在尝试使用 xbuild 在 Mono 上构建一个现有的 ASP.NET 解决方案,在我遇到的错误中,这是第一个(经过修剪和格式化以适合):
MyProj/OrderQueueJob/OrderQueueJob.csproj: error :
MyProj/OrderQueueJob/OrderQueueJob.csproj:
../packages/Microsoft.Web.WebJobs.Publish.1.0.2/tools/webjobs.targets:
Project file could not be imported, it was being imported by
MyProj/OrderQueueJob/OrderQueueJob.csproj:
MyProj/packages/Microsoft.Web.WebJobs.Publish.1.0.2/tools//webjobs.console.targets:
Project file could not be imported, it was being imported by
MyProj/packages/Microsoft.Web.WebJobs.Publish.1.0.2/tools/webjobs.targets:
MyProj/packages/Microsoft.Web.WebJobs.Publish.1.0.2/tools/webjobs.console.targets
could not import "$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets"
我不太了解构建 .NET 项目的内容,但很明显 VSToolsPath
似乎未设置,因此无法找到引用的文件(目标?)。在谷歌搜索时,我只遇到了较早的答案,其中提到在某些(现在是旧的)版本的 Mono 中,您需要将此文件夹从一个位置复制到下一个位置 - 这似乎是一个简单的遗漏。奇怪的是我的文件系统里好像有这个文件夹,但是找不到!
$ find /usr/local/Cellar/mono -iregex '.*VisualStudio.*Microsoft.WebApplication.targets'
/usr/local/Cellar/mono/4.2.2.30/lib/mono/xbuild/Microsoft/VisualStudio/v10.0/WebApplications/Microsoft.WebApplication.targets
/usr/local/Cellar/mono/4.2.2.30/lib/mono/xbuild/Microsoft/VisualStudio/v11.0/WebApplications/Microsoft.WebApplication.targets
/usr/local/Cellar/mono/4.2.2.30/lib/mono/xbuild/Microsoft/VisualStudio/v9.0/WebApplications/Microsoft.WebApplication.targets
什么给了?
显然 "MyProj" 是较长文件路径的精简版本,例如 /Users/John.Smith/projects/MyProj/
.
原来我每个 version 一个文件夹 Visual Studio
ls /usr/local/Cellar/mono/4.2.2.30/lib/mono/xbuild/Microsoft/VisualStudio/
v v10.0 v11.0 v12.0 v14.0 v9.0
正如您从我问题的输出中看到的那样,实际上只有其中一些具有 VS 工具。 Xamarin 忘记 VS2012 和 VS2015 很奇怪,但是哦,好吧。
当我将文件夹的最新现有版本复制到缺少它的文件夹时,问题就消失了:
MONO_VS_DIR=/usr/local/Cellar/mono/4.2.2.30/lib/mono/xbuild/Microsoft/VisualStudio
cp -r $MONO_VS_DIR/v11.0/WebApplications $MONO_VS_DIR/v12.0/
cp -r $MONO_VS_DIR/v11.0/WebApplications $MONO_VS_DIR/v14.0/
我正在尝试使用 xbuild 在 Mono 上构建一个现有的 ASP.NET 解决方案,在我遇到的错误中,这是第一个(经过修剪和格式化以适合):
MyProj/OrderQueueJob/OrderQueueJob.csproj: error :
MyProj/OrderQueueJob/OrderQueueJob.csproj:
../packages/Microsoft.Web.WebJobs.Publish.1.0.2/tools/webjobs.targets:
Project file could not be imported, it was being imported by
MyProj/OrderQueueJob/OrderQueueJob.csproj:
MyProj/packages/Microsoft.Web.WebJobs.Publish.1.0.2/tools//webjobs.console.targets:
Project file could not be imported, it was being imported by
MyProj/packages/Microsoft.Web.WebJobs.Publish.1.0.2/tools/webjobs.targets:
MyProj/packages/Microsoft.Web.WebJobs.Publish.1.0.2/tools/webjobs.console.targets
could not import "$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets"
我不太了解构建 .NET 项目的内容,但很明显 VSToolsPath
似乎未设置,因此无法找到引用的文件(目标?)。在谷歌搜索时,我只遇到了较早的答案,其中提到在某些(现在是旧的)版本的 Mono 中,您需要将此文件夹从一个位置复制到下一个位置 - 这似乎是一个简单的遗漏。奇怪的是我的文件系统里好像有这个文件夹,但是找不到!
$ find /usr/local/Cellar/mono -iregex '.*VisualStudio.*Microsoft.WebApplication.targets'
/usr/local/Cellar/mono/4.2.2.30/lib/mono/xbuild/Microsoft/VisualStudio/v10.0/WebApplications/Microsoft.WebApplication.targets
/usr/local/Cellar/mono/4.2.2.30/lib/mono/xbuild/Microsoft/VisualStudio/v11.0/WebApplications/Microsoft.WebApplication.targets
/usr/local/Cellar/mono/4.2.2.30/lib/mono/xbuild/Microsoft/VisualStudio/v9.0/WebApplications/Microsoft.WebApplication.targets
什么给了?
显然 "MyProj" 是较长文件路径的精简版本,例如 /Users/John.Smith/projects/MyProj/
.
原来我每个 version 一个文件夹 Visual Studio
ls /usr/local/Cellar/mono/4.2.2.30/lib/mono/xbuild/Microsoft/VisualStudio/
v v10.0 v11.0 v12.0 v14.0 v9.0
正如您从我问题的输出中看到的那样,实际上只有其中一些具有 VS 工具。 Xamarin 忘记 VS2012 和 VS2015 很奇怪,但是哦,好吧。
当我将文件夹的最新现有版本复制到缺少它的文件夹时,问题就消失了:
MONO_VS_DIR=/usr/local/Cellar/mono/4.2.2.30/lib/mono/xbuild/Microsoft/VisualStudio
cp -r $MONO_VS_DIR/v11.0/WebApplications $MONO_VS_DIR/v12.0/
cp -r $MONO_VS_DIR/v11.0/WebApplications $MONO_VS_DIR/v14.0/