2011-12-05 36 views
5

Tôi gặp sự cố với việc xây dựng dự án Silverlight trên appharbor (một số dll bị bỏ qua). lỗi tôi đã sau đây trước:Không thể xây dựng ứng dụng Silverlight trên appharbor

"error MSB4019: The imported project "C:\Program Files\MSBuild\Microsoft\Expression\Blend\Silverlight\v4.0\Microsoft.Expression.Blend.Silverlight.targets" was not found". 

Thats lý do tại sao tôi nhận xét 1 dòng trong hồ sơ csproj:

"Import Project="$(MSBuildExtensionsPath)\Microsoft\Expression\Blend\Silverlight\v4.0\Microsoft.Expression.Blend.Silverlight.targets"" 

Và bây giờ tôi nhận lỗi mới trong xây dựng. Ở đây bạn có thể xem dấu vết ngăn xếp: http://pastebin.com/bKYkDzRa Có ai biết cách khắc phục sự cố này không?

Kính trọng, Yaroslav

Trả lời

4

Bạn sẽ cần phải thêm dll bắt buộc vào thư mục Lib và xuất bản thư mục lib lên trang AppHarbor.

Have a look at this example bước 24 mà giải quyết cùng một vấn đề:

  • Trong Visual Studio, tạo một thư mục trong dự án DemoApp.Web gọi Lib. Thư mục này sẽ chứa tất cả các assembly mà ứng dụng web phụ thuộc vào và không phải là một phần của .NET Framework. Bằng cách đặt chúng vào thư mục này và đánh dấu chúng bằng “Copy to output”, các assembly sẽ được triển khai và có sẵn trên AppHarbor. Nếu bạn không thêm các assembly vào thư mục này, chúng sẽ không phải là một phần của các file trong phiên bản điều khiển và không được tải lên BitBucket và AppHarbor.

  • Sao chép các tệp DLL từ zip bằng Hammock vào thư mục Lib.

  • Mở lời nhắc lệnh trong thư mục chứa giải pháp. Thực hiện lệnh sau: subst S: DemoApp.Web \ Lib Điều này ánh xạ thư mục Lib vào ổ S: ảo. Lý do để làm điều này là các dự án Visual Studio sẽ chứa một đường dẫn tuyệt đối cho dll và khi các nguồn được tải xuống nhiều máy tính, các đường dẫn này sẽ khác nhau. Trạm biến áp sẽ khắc phục điều đó. Tôi thậm chí còn tạo ra một tập tin batch nhỏ mà làm điều này cho tôi và đặt nó trong thư mục giải pháp.

  • Trong Visual Studio nhấp chuột phải vào thư mục Lib và chọn Thêm | Các mục hiện có và thêm Hammock và JSON dll vào dự án. Hãy chắc chắn rằng bạn đánh dấu cả hai là "Copy to output". Nhấp chuột phải vào dự án DemoApp.Web và chọn “Thêm tham chiếu”. Nhấp vào Duyệt qua và điều hướng đến ổ S: và thêm cả dll.

+0

Hmm Tôi đã thêm tệp vào LibFolder và cập nhật tham chiếu về dự án nhưng chúng vẫn tham chiếu đến các tệp được cài đặt (C: \ Program Files (x86) \ Tham chiếu tập hợp \ Microsoft \ Framework \ Silverlight \ v4.0 \ System.Windows Ví dụ: .Browser.dll). –

+1

Bạn phải loại bỏ tham chiếu và thêm tham chiếu một lần nữa bằng cách trỏ đến dll được sao chép cục bộ trong thư mục Lib. Để tạo hiệu ứng tốt nhất, hãy tạo một ổ đĩa ảo S: sử dụng 'subst' trỏ đến thư mục Lib và tham chiếu đến' S: \ my.dll' Bằng cách này bạn có thể di chuyển dự án ở bất cứ nơi nào bạn muốn miễn là bạn đặt S-drive đúng cách . –

+0

vâng, tôi đã xóa và thêm từ thư mục Lib nhưng chúng vẫn trỏ đến tệp chương trình. Nó thật kì lạ... –

3

Các lỗi bạn đã trình bày ở trên là do SDK Expression Blend không được cài đặt trên máy chủ xây dựng. Vì nó không được cài đặt, MSBuild không thể tìm thấy mục tiêu Blend build. Tôi không chắc liệu đây có phải là thứ mà AppHarbor hỗ trợ hoặc có kế hoạch hỗ trợ hay không, nhưng tôi khuyên bạn nên liên hệ với họ để xem họ có thể cài đặt SDK này cho bạn hay không.

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