2013-06-21 13 views
7

Obecnie używam VS 2012 na 64-bitowym komputerze, przy użyciu Crystal Reports dla VS 2012.Którą wersję Crystal Reports mam na myśli (32-bitową lub 64-bitową) podczas tworzenia?

Po zainstalowaniu Crystal Reports dla VS 2012, zauważyłem tam są 2 główne katalogi:

  • Common \ SAP BusinessObjects Enterprise XI 4.0 \ win64_x64
  • Common \ SAP BusinessObjects Enterprise XI 4.0 \ win32_x86

Aplikacja że mam zamiar wdrożyć mogą być rozmieszczone na obu 32-bitowych i 64-bitowych komputerów, więc które Crystal Reports DL Ls powinienem się odwołać? x86 lub x64?

Czy muszę mieć 2 oddzielne rozwiązania, jedną z bibliotekami DLL x86, a drugą z x64?

Aktualizacja:

Co zrobiłem było odwoływać się do bibliotek DLL x86 przy opracowywaniu i zainstalować wersję x86 redystrybucyjny Crystal Reports na wszystkich moich komputerach wdrażania, niezależnie od jego architektury. Mam nadzieję, że niektórzy z was pomagają

+0

Czy planujesz użyć menedżera pakietów, takiego jak [InstallShield] (http://installshield.com) lub [Chocolatey] (http://chocolatey.org/)? – craig

+0

Tak, używam wersji Express InstallShield –

+0

Jeśli tworzysz 64-bitową wersję swojej aplikacji, czy automatycznie tworzy ona 32-bitową wersję? – craig

Odpowiedz

3

Wiem, że to nie jest technicznie odpowiedź na twoje pytanie, ale ponieważ wciąż pozostaje bez odpowiedzi, nawet po ustaleniu nagrody, pomyślałem, że i tak mogę zasugerować i pomóżcie;

Możesz ponownie rozważyć, czy naprawdę potrzebujesz 64-bitowej wersji aplikacji. Większość aplikacji biznesowych (które mogę założyć, że budujesz, ponieważ generujesz z niego raporty), nie przynosi korzyści z bycia wersją 64-bitową.

Można zbudować i dystrybuować tylko wersję 32-bitową (x86), która będzie nadal działać na komputerach wszystkich komputerach, niezależnie od tego, czy korzystają one z 32-bitowej, czy 64-bitowej wersji systemu Windows. Dzieje się tak, ponieważ wszystkie 64-bitowe wersje systemu Windows zawierają specjalny podsystem (Windows-on-Windows, or WOW64), który uruchamia kod 32-bitowy. Jest całkowicie płynny i nie ma praktycznie żadnych problemów z kompatybilnością.

Wiele aplikacji jest wdrażanych w ten sposób. Sam Visual Studio to doskonały przykład: nadal jest to kod 32-bitowy, ale działa dobrze nawet w 64-bitowych wersjach systemu Windows, dzięki WOW64.

Aby to zrobić, wystarczy, że ustawisz projekt na platformę x86 i odniesiesz się wyłącznie do 32-bitowych bibliotek DLL. Ponieważ budujesz tylko jeden plik binarny, znacznie uprościłoby to wysiłki związane z rozwojem i dystrybucją, nie tylko w zakresie ustalania, które biblioteki DLL mają się odwoływać, ale także ilości kodu, który należy przetestować, oraz samego procesu dystrybucji.

Jeśli napiszesz dobry kod, który będzie zgodny ze standardowymi idiomami i zalecanymi praktykami, dodanie obsługi w wersji 64-bitowej później (jeśli okaże się, że przyniesie jakąś korzyść dla twojego przypadku) byłoby dość banalną operacją. System .NET Framework bardzo dobrze usuwa różnice między platformami; w ten sposób mogą zaoferować opcję kierowania "Dowolny procesor".


Poza tym, jeśli wolno mi spekulować (bo nie mam konkretnego doświadczenia z Crystal Reports), mogę sobie wyobrazić, że interfejs publiczny jest identyczna dla obu DLL 32-bitowych i 64-bitowych.

W takim przypadku można po prostu odwołać się do 32-bitowej wersji dla prac programistycznych, a następnie skonfigurować skrypt kompilacji w celu wybrania poprawnej wersji biblioteki DLL, w zależności od tego, czy budujesz wersję 32-bitową, czy 64- bitowy binarny.

Oczywiście, instalator musiałby dokonać tego samego wyboru, podczas instalacji (jeśli używasz zunifikowanego instalatora) lub podczas budowania samego instalatora (jeśli masz oddzielnych instalatorów 32-bitowych i 64-bitowych).

Powiązane problemy