2012-05-13 26 views
6

Tôi đang cố gắng xây dựng dự án MVC4 thử nghiệm trên OS X 10.7.4 bằng cách sử dụng Mono 2.10.9. Tôi đã tạo một ứng dụng web MVC4 trống trong Visual Studio sử dụng git để chuyển mã nguồn từ Windows sang Mac OS X. Sau đó tôi chạy xbuild để khôi phục gói .nuget, nhưng khi tôi xây dựng trong chế độ phát triển đơn, tôi gặp lỗi lạ:Thiếu ứng dụng web khi xây dựng dự án MVC4 trong MonoDevelop trên OS X 10.7.4

/Users/tamasnagy/Developer/Spellbound/Spellbound/Spellbound.csproj: Error: /Library/Frameworks/Mono.framework/Versions/2.10.9/lib/mono/xbuild/Microsoft/VisualStudio/v10.0/WebApplications/Microsoft.WebApplication.targets: Project file could not be imported, it was being imported by /Users/tamasnagy/Developer/Spellbound/Spellbound/Spellbound.csproj: Imported project: "/Library/Frameworks/Mono.framework/Versions/2.10.9/lib/mono/xbuild/Microsoft/VisualStudio/v10.0/WebApplications/Microsoft.WebApplication.targets" does not exist. (Spellbound)

Điều này có ý nghĩa gì? Điều này cũng xảy ra khi tôi chỉ cần tạo một dự án MVC mới trong MonoDevelop và nhấn build. Bất kỳ ý tưởng?

Trả lời

1

Triển khai MSBuild của Mono (xbuild) không thực hiện các mục tiêu cho dự án ASP.NET.

Bạn có thể xây dựng trong MonoDevelop. Đảm bảo bạn đã tắt tích hợp xbuild thử nghiệm trong tùy chọn MonoDevelop.

+0

Nếu bạn tắt XBuild/MSBuild không bạn mất trên NuGet Package Restore? Bạn đã quay trở lại để tự khôi phục các gói phải không? – sumitkm

3

Thay đổi tập tin csproj của bạn để nhập khẩu v9.0, như vậy ...

<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v9.0\WebApplications\Microsoft.WebApplication.targets" /> 
+0

Thao tác này không hoạt động nữa vì MD master nhấn mạnh việc thay đổi v9.0 trở lại v10.0 – firegrass

8

Tạo một liên kết tượng trưng:

cd/usr/lib/mono/xbuild/Microsoft/VisualStudio/v9. 0

ln -s v9.0 v10.0

tôi có cùng ubuntu chính xác 12.04 distro trên hai máy tính khác nhau và không thể tìm ra lý do tại sao mono sẽ biên dịch trên một máy tính và không phải là khác. Nhưng tốt thôi, symlink đã giải quyết được vấn đề.

+0

Tạo một liên kết tượng trưng có lẽ là giải pháp gọn gàng nhất nếu bạn sử dụng XBuild/MSBuild. Khôi phục gói Nuget). – sumitkm

+1

Đây là câu trả lời tốt hơn câu trả lời được chấp nhận. –

+0

Tương tự với các phiên bản mới hơn của Visual Studio: http://stackoverflow.com/a/35955692/200987 – oligofren

0

Tôi biết đây là một câu hỏi cũ, nhưng nó xuất hiện khi tìm kiếm cách sử dụng WebApplications.targets trên OSX, vì vậy nó vẫn đáng trả lời. Với phiên bản hiện tại của Mono (5.x), Webapplication.targets được bao gồm, vì vậy bây giờ tất cả những gì bạn phải làm, là đặt VSToolsPath và mọi thứ sẽ hoạt động.

Nếu bạn đang sử dụng vỏ bash tiêu chuẩn, các tập tin .profile là nơi để đặt nó:

export VSToolsPath=/Library/Frameworks/Mono.framework/Versions/Current/lib/mono/xbuild/Microsoft/VisualStudio/v15.0/ 
Các vấn đề liên quan