我正在尝试使用Mono 2.10.9在OS X 10.7.4上构建测试MVC4项目。我在Visual Studio中创建了一个新的空MVC4 Web应用程序,使用git将源代码从Windows传输到Mac OS X.然后我运行xbuild for .nuget包恢复,但是当我构建monodevelop时,我得到一个奇怪的错误:
/Users/tamasnagy/Developer/Spellbound/Spellbound/Spellbound.csproj:错误:/ Library/Frameworks/Mono.framework/Versions/2.10.9/lib/mono/xbuild/Microsoft/VisualStudio/v10.0/WebApplications /Microsoft.WebApplication.targets:无法导入项目文件,它是由/Users/tamasnagy/Developer/Spellbound/Spellbound/Spellbound.csproj导入的:导入的项目:“/ Library / Frame /Mono.framework / Version / 10 .9 / lib / mono / xbuild / Microsoft / VisualStudio / v10.0 / WebApplications / Microsoft.WebApplication.targets“不存在。 (出神)
这意味着什么?当我在MonoDevelop中创建一个新的MVC项目并按下构建时,也会发生这种情况。有什么想法吗?
答案 0 :(得分:8)
创建符号链接:
cd /usr/lib/mono/xbuild/Microsoft/VisualStudio/v9.0
ln -s v9.0 v10.0
我在两台不同的计算机上拥有完全相同的ubuntu 12.04发行版,并且无法弄清楚为什么mono会在一台计算机上而不是另一台计算机上编译。但是哦,好吧,符号链接解决了这个问题。
答案 1 :(得分:3)
将csproj文件更改为导入v9.0,因为......
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v9.0\WebApplications\Microsoft.WebApplication.targets" />
答案 2 :(得分:1)
Mono的MSBuild实现(xbuild)没有ASP.NET项目目标的实现。
您可以在MonoDevelop中构建。确保在MonoDevelop首选项中关闭了实验性xbuild集成。
答案 3 :(得分:0)
我知道这是一个老问题,但在搜索如何在OSX上使用WebApplications.targets
时出现了问题,所以它仍然值得回答。使用当前版本的Mono(5.x),Webapplication.targets
包含在内,所以现在你要做的就是设置VSToolsPath
,一切都应该正常工作。
如果您使用的是标准bash shell,.profile
文件就可以放置它:
export VSToolsPath=/Library/Frameworks/Mono.framework/Versions/Current/lib/mono/xbuild/Microsoft/VisualStudio/v15.0/