Biblioteka 32 i 64 bity

Biblioteka 32 i 64 bity
JU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5046
0

Cześć, mam małą zagwozdkę. Tworzę sobie aplikację, która wykorzystuje pewną bibliotekę. To jest biblioteka pisana w C, ale ma wrappera do C# i właśnie tym wrapperem się posługuję. Niestety zarówno wrapper jak i dllki są w wersjach 32 i 64 bitowych. Teraz pytanie, co mam zrobić, żeby stworzyć aplikację 32 i 64 bitową? Tzn. przykładowo w C++ jest prosta sprawa. Można podać różne katalogi i liby dla 32 i 64 bitowych wersji. W C# widzę, że takiej opcji nie ma, a dll C# powinny być budowane jako AnyCPU i wtedy nie ma problemu. Jak sobie z tym poradzić?

fasadin
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 4883
0

zrob dwie aplikacje, jedna 64 bitowa druga 32 bitowa.

JU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5046
0

Serio? Nie ma normalnego rozwiązania?

neves
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Kraków
  • Postów: 1114
0

yyy jak to nie ma takiej opcji? prawym na solucji i masz opcję Configuration manager, gdzie sobie definiujesz konfiguracje buildowe, różne konfiguracje buildowe mogą mieć referencję do różnych wersji dllek, możesz sobie stworzyć jedną x64 a drugą x32, możliwe że wszystkiego nie da się wykilkać z interfejsu i trzeba edytować csproje, co nie zmiena faktu że się da.

JU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5046
0

To pokaż mi, gdzie to zrobić. Bo w configuration managerze możesz sobie ustawić, jakie projekty mają się budować (lub nie budować) w jakiej bitowości. W csproj zależności wydają się nie być w żaden sposób powiązane z bitowością.

AF
  • Rejestracja: dni
  • Ostatnio: dni
0

Co dokładnie chcesz uzyskać? Chcesz raz kliknąć Build i mieć aplikację w dwóch wersjach? Wtedy potrzebujesz dwóch projektów albo cudowania z MSBuildem (nie wiem, jak to zrobić, ale zapewne da się to ogarnąć własnymi skryptami). Czy może chcesz jedną aplikację i aby automatycznie do katalogu wyjściowego skopiowała się odpowiednia dllka? Wtedy możesz użyć Post Build Events.

neves
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Kraków
  • Postów: 1114
2

Fragmenty kodu z mojego cs proja:

Kopiuj
 
<PropertyGroup Condition="'$(Configuration)' == 'Debug' OR '$(Configuration)' == 'Release'">
    <TajneAPIPath>..\..\Binaries\2016</TajneAPIPath>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)' == 'Debug2017' OR '$(Configuration)' == 'Release2017'">
    <TajneAPIPath>..\..\Binaries\2017</TajneAPIPath>
  </PropertyGroup>
Kopiuj
    <Reference Include="TajneAPI">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>$(TajneAPIPath)\TajneAPI.dll</HintPath>
      <Private>False</Private>
    </Reference>

W zależności od wybranego profilu raz builduje mi z dllkami z folderu 2016, raz z 2017, analogicznie mozesz sobie zrobić x86 i x64

Azarien
  • Rejestracja: dni
  • Ostatnio: dni
0

Zrób jedną wersję aplikacji, 32-bitową, a będziesz miał mniej roboty.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.