To pytanie mogło zostać zadane wiele razy, a może po prostu nie mogę korzystać z funkcji wyszukiwania, tak samo jak Google, ale na razie nie znalazłem odpowiedzi na to pytanie.Odwoływana biblioteka DLL nie jest kopiowana do projektu odwoływania się
Ja obecnie mam dwa projekty, projekt X, Y i projekt projekt oo (która tylko trzyma mapowania)
Project X to FluentNhibernate projekt, który posiada swoje sessionfactories i takie rzeczy. To jest także miejsce, w którym mapowania są załadowane i rzeczy (jest to ważne i podejrzewam, że to może być cały problem). SqlServer.Types.dll.
Projekt Y to usługa wykorzystująca projekt X do połączeń z bazą danych.
Wszystkie konstrukcje probems znajdują i działają idealnie na mojej maszynie programistycznej, jednak po wdrożeniu na naszym serwerze nie działają (błędy w czasie wykonywania). Błąd był dość niejasny, ponieważ wskazywał na brakujące połączenie FluentNHibernate, co nie miało miejsca.
Procmon.exe na szczęście pokazał kod próbujący załadować plik Microsoft.SqlServer.Types.dll, który od czasu, gdy serwer nie ma zainstalowanego programu SQL Server (mój klient też nie ma, ale ma studio zarządzania, które najprawdopodobniej instaluje to .DLL również).
Jak na razie dobrze, skopiowałem bibliotekę DLL i zadziałało (tak!).
Teraz pomyślałem, że dodam zespół do projektu X, aby upewnić się, że to odniesienie zostanie skopiowane do innych projektów przy użyciu projektu X. To się nie stało ... Więc próbowałem ustawić "Kopiuj lokalnie" ustawienie na true.
Niestety to jeszcze nie kopiuje .dll do Y. projektu odsyłania
Czy istnieje sposób, aby tak się stało, czy jest to Visual Studio beeing mądry i realizacji Projektu Y nie trzeba tego .dll i w ten sposób odmawiając skopiowania?
(Od Projektu Z potrzebuje rzeczywistego odniesienia i Project X ładuje ten czas montażu @ run nie jest „twarde” odniesienia między Z i X)
Could każdy geniusz Stackoverflow rzucić nieco światła na to, ponieważ szczerze mówiąc” Chciałbym wiedzieć, dlaczego zachowuje się w ten sposób (i najlepiej sposób, aby zachowywał się tak, jakbym tego chciał).
ja wciąż mówimy o Microsoft.SqlServer.Types.dll tak. Ale dlaczego dystrybucja z twoim rzeczywistym oprogramowaniem byłaby w tym przypadku zła? Czy jest tu jakaś najlepsza praktyka? –
Dll typu jest tylko wrapper wokół bibliotek dll, które są również używane przez SQL Server się do wykonywania operacji przestrzennych ... te biblioteki DLL są napisane w C/C++ i nie są kopiowane, jeśli po prostu skopiować ponad dll typy ... możesz również skopiować program SQLServerSpatial.dll (który jest rodzimą biblioteką dll) – MichaC
Dobrze używam tych typów w kodzie źródłowym napisanym przez jedną trzecią, którą zmieniłem, by używać płynnego nhibernate z informacjami geo i serwerem SQL 2012 Dialect. Jednak instalowanie typów CLR według podanych informacji wydaje się działać. Więc zrobię jeszcze kilka testów i jeśli ci się uda, zaznaczę twoją odpowiedź. Powiedział, że wątpię, by studio graficzne odmówiło kopiowania bibliotek DLL, ponieważ zostały napisane w języku C/C++. Podstawowy problem nadal istnieje i chciałbym odpowiedź tutaj, jednak inni, którzy znajdują tu drogę z powodu Microsoft.SqlServer.Types.dll powinni użyć instalatora. –