Câu hỏi này có thể đã được hỏi nhiều lần và có thể tôi chỉ sử dụng chức năng tìm kiếm ở đây tốt như google nhưng tôi chưa tìm thấy câu trả lời cho câu hỏi này.DLL được tham chiếu không được sao chép để tham chiếu dự án
Tôi hiện đã có hai dự án, dự án X, dự án Y và Z dự án (mà chỉ giữ ánh xạ)
Project X là một dự án FluentNhibernate nắm giữ sessionfactories và đồ đạc của tôi như thế này. Vì vậy, đây cũng là nơi ánh xạ được tải và mọi thứ (điều này quan trọng và tôi nghi ngờ đó có thể là toàn bộ lý do cho vấn đề tôi gặp phải)
Bây giờ trong Project X Tôi đã tham chiếu một hội đồng sử dụng Microsoft. SqlServer.Types.dll.
Dự án Y là dịch vụ sử dụng dự án X cho các kết nối cơ sở dữ liệu của nó.
Tất cả các tìm kiếm xây dựng tìm và chạy hoàn hảo trên máy phát triển của tôi, tuy nhiên khi được triển khai cho máy chủ của chúng, chúng không hoạt động (lỗi thời gian chạy). Lỗi này khá mơ hồ vì nó chỉ ra một cụm FluentNHibernate bị thiếu mà không phải là trường hợp.
Procmon.exe may mắn cho thấy mã đang cố gắng tải Microsoft.SqlServer.Types.dll vì máy chủ không có SQL Server được cài đặt (máy khách của tôi không hoặc nhưng nó có một studio quản lý có nhiều khả năng cài đặt này .DLL cũng vậy).
Cho đến giờ rất tốt, đã sao chép tệp DLL lên và nó hoạt động (yay!).
Bây giờ tôi đã tìm tôi đã thêm assembly vào dự án X để đảm bảo rằng tham chiếu này được sao chép sang các dự án khác bằng cách sử dụng dự án X. Điều này không xảy ra .... Vì vậy, tôi đã thử đặt 'Sao chép cục bộ' đặt thành true.
Đáng buồn là điều này vẫn không sao chép .dll vào Y. dự án tham khảo
Có cách nào để làm cho điều này xảy ra hoặc là Visual Studio này beeing thông minh và thực hiện Dự án Y không cần .dll này và do đó từ chối sao chép nó?
(Kể từ khi dự án Z cần tài liệu tham khảo thực tế và dự án X tải này thời gian lắp ráp @ chạy không có tài liệu tham khảo 'cứng' giữa Z và X)
thể bất kỳ thiên tài Stackoverflow làm sáng tỏ về vấn đề này kể từ khi thành thật tôi Tôi muốn biết lý do tại sao nó hoạt động theo cách này (và lý tưởng là một cách để làm cho nó hoạt động như tôi muốn nó).
tôi vẫn đang nói về Microsoft.SqlServer.Types.dll vâng. Nhưng tại sao sẽ phân phối nó với phần mềm thực sự của bạn là xấu trong trường hợp này? Có một số điều thực hành tốt nhất tại nơi làm việc ở đây không? –
Các loại dll chỉ là một wrapper xung quanh dlls cũng được sử dụng bởi SQL Server chính nó để làm các hoạt động không gian ... những dlls được viết bằng C/C++ và không được sao chép nếu bạn chỉ cần sao chép trên các loại dll ... bạn cũng có thể gây ra cũng sao chép SQLServerSpatial.dll (đó là dll bản địa) – MichaC
Vâng tôi đang sử dụng các loại mã nguồn bằng văn bản của một phần ba mà tôi đã thay đổi để sử dụng thông thạo nhibernate với thông tin địa lý và sql server 2012 Dialect. Tuy nhiên, việc cài đặt các loại CLR cho mỗi thông tin bạn cung cấp có vẻ hoạt động. Vì vậy, tôi sẽ làm một vài bài kiểm tra nữa và nếu những thành công đó tôi sẽ đánh dấu câu trả lời của bạn. Điều đó nói rằng tôi nghi ngờ studio trực quan từ chối sao chép DLL do họ beeing được viết bằng C/C++. Vấn đề cơ bản vẫn là viết tắt và tôi rất thích một câu trả lời ở đây tuy nhiên những người khác tìm cách của họ ở đây vì Microsoft.SqlServer.Types.dll nên sử dụng trình cài đặt. –