Biblioteka 32 i 64 bity

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ć?

0

zrob dwie aplikacje, jedna 64 bitowa druga 32 bitowa.

0

Serio? Nie ma normalnego rozwiązania?

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.

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ą.

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.

2

Fragmenty kodu z mojego cs proja:

 
<PropertyGroup Condition="'$(Configuration)' == 'Debug' OR '$(Configuration)' == 'Release'">
    <TajneAPIPath>..\..\Binaries\2016</TajneAPIPath>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)' == 'Debug2017' OR '$(Configuration)' == 'Release2017'">
    <TajneAPIPath>..\..\Binaries\2017</TajneAPIPath>
  </PropertyGroup>
    <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

0

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

1 użytkowników online, w tym zalogowanych: 0, gości: 1