Gần đây tôi đã nâng cấp dự án của chúng tôi với RTM phiên bản 1.0 của FluentNHibernate, mà yêu cầu mới nhất Bit NHibernate. Điều này dẫn đến cùng một vấn đề bạn đang gặp phải.
cấu trúc của dự án của chúng tôi là một cái gì đó như thế này:
Repository root
Solution
Web
References
DataAccess
... other projects/layers ...
DataAccess
References
..\ReferenceAssemblies\NHibernate.dll
..\ReferenceAssemblies\FluentNHibernate.dll
ReferenceAssemblies
(cư trú Tất cả các DLL bên ngoài trong thư mục ReferenceAssemblies.)
nỗ lực đầu tiên của tôi để giải quyết vấn đề là bằng cách thêm một tham chiếu đến NHibernate .ByteCode.Castle.dll vào dự án DataAccess. Điều này làm việc ... nhưng chỉ trong phát triển ...
Khi tôi xuất bản ứng dụng web lên máy chủ kiểm tra chấp nhận khách hàng của chúng tôi (tự động xảy ra với sự trợ giúp của TeamCity và tập lệnh có chứa lệnh gọi aspnet_compiler.exe), NHibernate.ByteCode.Castle.dll không tìm thấy ở đâu .
Tôi không chắc chắn lý do tại sao điều này xảy ra, nhưng tôi nghi ngờ rằng nó có liên quan đến thực tế là không có mã nào trong ứng dụng thực sự gọi mã trong dll cụ thể đó. Ngoài ra, có (đúng tôi nếu tôi sai) không có tài liệu tham khảo hardcoded từ NHibernate.dll để NHibernate.ByteCode.Castle, do đó, một nơi nào đó xuống dòng (có lẽ không sử dụng) dll bị bỏ qua.
Số thứ hai (và thành công) cố gắng là thêm tham chiếu đến dll bị thiếu trực tiếp vào dự án web. Bây giờ, tôi có thể xóa tham chiếu mà tôi đã thêm vào trong lần thử đầu tiên mà không gặp bất kỳ sự cố nào.
(Tôi không đặc biệt thích có một tài liệu tham khảo ví dụ trong đó dự án cụ thể, nhưng hey!) :-)
Nguồn
2009-10-15 16:36:41
Đây có phải là ứng dụng asp.net không? –