2010-06-02 16 views
8

Na początek nie wiem zbyt wiele o wdrażaniu. Mam nadzieję, że moje pytanie ma sens.Jak wdrożyć aplikację w języku C#, jednocześnie dołączając pliki DLL innych firm?

Potrzebuję zainstalować/wdrożyć aplikację C# na wielu komputerach. Potrzebny jest plik DLL innej firmy: biblioteka C++ ("lpsolve55.dll", dla zainteresowanych jest to darmowy solver MIP/LP, patrz lpsolve.sourceforge.net/5.5/). Używam go w moim kod w następujący sposób:

[DllImport("lpsolve55.dll", SetLastError = true)] 
    public static extern bool add_column(int lp, double[] column); 

Do testowania, mam ręcznie skopiowany plik .dll do do project\bin\release, i to działa dobrze.

Moje pytanie: Będę potrzebował instalatora dla aplikacji, która będzie zarządzać instalacją .dll. Rozważam wdrożenie ClickOnce, ponieważ używam Visual C# 2008 Express Edition, ale zrobi to każde niezbyt drogie rozwiązanie.

Co byś poradził?

Odpowiedz

1

Jeśli ClickOnce ma możliwość przeniesienia tego pliku DLL i skopiowania go do folderu aplikacji, użyłbym go. Byłoby jeszcze lepiej, gdyby mógł sprawdzić, czy plik DLL jest obecny w systemie (folder system32) i użyć go, aby nie mieć kilku wersji binarnych na komputerze docelowym.

10

Po prostu dodaj swoją bibliotekę DLL do projektu w Visual Studio.

  • prawym przyciskiem myszy projekt w oknie Solution Viewer
  • Wybierz Add - istniejący element
  • Przejdź do DLL i kliknij Dodaj lub małą strzałkę obok przycisku Dodaj i Dodaj link
  • wybrać swoje DLL w roztworze Viewer
  • prawym przyciskiem myszy i wybierz Właściwości
  • Ustaw Budowa Action do Zawartość
  • Set Kopiuj do Output Directory, do Copy jeśli nowsze

Teraz plik zostanie automatycznie skopiowany do debugowania lub zwolnij folder.

Do wdrożenia możesz dodać projekt konfiguracji do swojego rozwiązania. Po dodaniu danych wyjściowych pierwszego projektu do projektu instalacji biblioteka DLL zostanie automatycznie dodana do instalacji.

Ale projekt instalacji to zupełnie nowy obszar. Więc zacznij z nim pracować i zadaj nowe pytanie, jeśli utkniesz z tym.

+1

To będzie działać dla plików DLL. Jednak nie dla np. Pliki XML domyślnie są oznaczone jako "Plik danych" (kolumna "Publish Status") iw konsekwencji nie są kopiowane do katalogu instalacyjnego aplikacji ClickOnce podczas instalacji (patrz * [A.plik wdrażania nie wdraża pliku XML] (http://stackoverflow.com/questions/2344083/) *). Poprawka polega na zmianie "Plik danych" na "Uwzględnij". –

2

Można po prostu dołączyć bibliotekę DLL do projektu i wdrożyć całość za pomocą ClickOnce. Dodaj go do swojego rozwiązania, ustaw akcję budowania na "zawartość". Ustaw "copy to output directory" na "copy always". Po opublikowaniu powinieneś móc zobaczyć plik w folderze publikowania. Możesz również sprawdzić okno dialogowe Pliki aplikacji (na karcie publikowania właściwości projektu), aby upewnić się, że zostanie ono dołączone.

Powiązane problemy