2015-06-09 16 views
6

Tôi đang cố gắng sử dụng các lệnh dòng lệnh sau để biên dịch một hội đồng các mã từ dự án của tôi:Tại sao tôi nhận được lỗi sau khi biên dịch hội đồng này?

C:/"Program Files"/Unity/Editor/Data/Mono/bin/gmcs 
-target:library -out:C:/Users/Austin/Desktop/PixelExpanse.dll 
-recurse:C:/Users/Austin/Desktop/Projects/Repos/trunk/PixelExpanse/SpaceColonyRefactor/Assets/Source/*.cs 
-d:RUNTIME -r:C:/"Program Files"/Unity/Editor/Data/Managed/UnityEngine.dll 

Như bạn thấy, tôi, tôi tin rằng, tham khảo một cách chính xác các UnityEngine.dll. Mã sẽ được biên dịch chứa tham chiếu đến UnityEngine.UIUnityEngine.EventSystems. Nhưng khi tôi chạy lệnh trên, tôi nhận được lỗi biên dịch sau:

error CS0234: The type or namespace name 'EventSystems' does not exist in the namespace 'UnityEngine'. Are you missing an assembly reference?

Từ những gì tôi đã có thể tìm thấy thông qua googling, nó có vẻ như một lỗi người đã nhận được khi sử dụng một pre-4.6 lắp ráp, vì thats khi EventSystems và giao diện người dùng được giới thiệu. Nhưng tôi không biết làm thế nào tôi có thể bị mất tích đó trong dll Tôi đang tham chiếu như Unity 5 là phiên bản duy nhất đã từng chạm vào máy tính này.

Là một lưu ý phụ, tôi đã đăng câu hỏi này lên câu trả lời Unity và chưa nhận được phản hồi. Tôi hy vọng đó là bởi vì biên dịch lắp ráp vượt quá phạm vi của những gì hầu hết người dùng có lựa chọn để thực hiện. Do đó tôi hỏi nó ở đây.

+1

Bạn có thể mở 'UnityEngine' bằng Trình phản xạ hoặc một công cụ tương tự và xem các loại dự kiến ​​có ở đó không? –

Trả lời

6

Các namespace UnityEngine.EventSystems thực sự xuất hiện trong UnityEngine.UI.dll và không UnityEngine.dll nên có vẻ như bạn cần phải tham khảo các cựu quá khi biên dịch thủ công từ dòng lệnh. Các dự án Unity có điều này theo mặc định (xem bên dưới).

này được xác minh bằng cách mở lắp ráp trong công cụ phản xạ của bạn lựa chọn, ở đây tôi đang sử dụng JetBrains dotPeek:

enter image description here

Đây là cách dự án thử nghiệm của tôi xuất hiện với sự tham khảo Unity mặc định. Lưu ý rằng theo mặc định một tham chiếu đến UnityEngine.UI đã xuất hiện trong các dự án Unity tạo:

enter image description here

Khi tôi xây dựng ứng dụng máy tính để bàn Windnows tôi qua Unity, dlls trên xuất hiện trong:

< >: < projectOutFolder> \ < projectName>_Data \ Managed

1

Tôi đã kiểm tra UnityEngine.dll và không có vùng tên của hệ thống sự kiện/giao diện người dùng không được bao gồm. Mặc dù có một dll trong Unity5 \ Editor \ Data \ UnityExtensions \ Unity \ GUISystem \ UnityEngine.UI.dll bao gồm các không gian tên này.

+0

Ups. Đó là một lỗi đánh máy. Tôi có nghĩa là EventSystems –

+0

Cảm ơn. Đó là thú vị mặc dù, là nó một lỗi doco trên một phần của tôi, tôi tự hỏi sau đó? – MickyD

+0

Tôi không chắc chắn, nhưng nó được khai báo là "Mở rộng" và giao diện người dùng là một thành phần OpenSource. có lẽ tốt hơn để duy trì cách đó –

0

Bạn có thể thử:

nhấp chuột phải vào "bảng điều khiển dự án", và sau khi "tái nhập khẩu Tất cả".

Điều này có thể xảy ra do chuyển đổi giữa các nền tảng, ví dụ: IOS, hoặc Máy tính để bàn .. do đó, folrders bị xóa bởi trở nên không cần thiết ..

Giải quyết cho tôi: Unity 5.2, giành chiến thắng 7, 32 bit;

Chúc may mắn!

0

Đối với máy mac, đó là /Applications/Unity/Unity.app/Contents/UnityExtensions/Unity/GUISystem/UnityEngine.UI.dll.

Các vấn đề liên quan