无法导入“$(VSToolsPath)\ ...”

时间:2016-03-12 08:53:24

标签: asp.net mono

我正在尝试使用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/

1 个答案:

答案 0 :(得分:1)

事实证明,每个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 Tools。奇怪的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/