Toon posts:

[Visual Studio 2008/C#] DLL x86 en x64 dezelfde naam?

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik gebruik SQLite in mijn c# project die ik verkregen heb via http://sqlite.phxsoftware.com/.

De applicatie werkt prima maar ik wil er nu ook voor zorgen dat deze applicatie op x64 werkt. Dat doet hij namelijk nog niet. Het probleem zit hem in de DLL die ik gebruik voor SQLite. Deze is geschreven voor x86 en werkt dus niet op x64. Nu zit er ook een x64 versie bij die wel prima werkt.

Als ik namelijk de DLL vervang met de x64 versie op een x64 machine werkt de applicatie prima.

In Visual Studio kan ik beide DLL's importeren als reference omdat deze dan dezelfde naam hebben (System.Data.SQLite). Bij properties kan ik ook niet echt een architectuur kiezen.

Hebben jullie een idee hoe ik in dezelfde project (met dezelfde installer) beide DLL's kan gebruiken aan de hand van de architectuur (x64 of x86)?

Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 15:40
=> DTE.

https://fgheysels.github.io/


Acties:
  • 0 Henk 'm!

  • Sebazzz
  • Registratie: September 2006
  • Laatst online: 23-09 18:21

Sebazzz

3dp

Bedenk dat je als je een x64 dll gebruikt, je ook expliciet je project moet bouwen als x64 en niet als x86 of 'Any CPU'.

[Te koop: 3D printers] [Website] Agile tools: [Return: retrospectives] [Pokertime: planning poker]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Dat heb ik inderdaad wel gedaan, althans ik heb het nu zo gemaakt dat ik x64 of x86 kan kiezen.

Echter zit ik nog steeds met die dll :s

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22-09 16:37

.oisyn

Moderator Devschuur®

Demotivational Speaker

Je kunt er natuurlijk ook gewoon voor kiezen om 64 bits niet te ondersteunen. 32 bits apps runnen namelijk prima op een 64 bits Windows. Waar je dan wel voor moet zorgen, zoals Sebazzz al zei, is dat je bij je project dan moet aangeven dat hij alleen als x86 gecompiled mag worden, omdat .Net 'm anders op 64 bits system als 64 bits app gaat runnen, wat natuurlijk niet kan met een 32 bits DLL.

Wat ik hiermee probeer te zeggen is dat je de 64 bits DLL dus niet nodig hebt om je applicatie op 64 bits systemen te draaien. Uit je topicstart maak ik een beetje op dat dat wel is wat jij denkt.

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • Sebazzz
  • Registratie: September 2006
  • Laatst online: 23-09 18:21

Sebazzz

3dp

...tenzij je van plan bent 4GB of meer aan te spreken ;) (wat bij de meeste .NET apps ik niet zie gebeuren, zelfs Paint.NET niet, die geeft gewoon na een gigabyte een Out of Memory fout, wat niet klopt)

[ Voor 56% gewijzigd door Sebazzz op 05-01-2009 16:33 ]

[Te koop: 3D printers] [Website] Agile tools: [Return: retrospectives] [Pokertime: planning poker]


Acties:
  • 0 Henk 'm!

  • leuk_he
  • Registratie: Augustus 2000
  • Laatst online: 15-07 15:35

leuk_he

1. Controleer de kabel!

Voeg je toch in je installer als condition toe op betreffende file?

http://msdn.microsoft.com/en-us/library/aa370522(VS.85).aspx

Need more data. We want your specs. Ik ben ook maar dom. anders: forum, ff reggen, ff topic maken
En als je een oplossing hebt gevonden laat het ook ujb ff in dit topic horen.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hm kan je uitleggen wat je hiermee bedoelt? Ik weet wel ongeveer hoe je een conditie toevoegd aan een installer maar niet hoe dit met referenties werkt?

Acties:
  • 0 Henk 'm!

  • leuk_he
  • Registratie: Augustus 2000
  • Laatst online: 15-07 15:35

leuk_he

1. Controleer de kabel!

Je installeert de dll toch 1x op de doel machine? dus de installer kan bepalen of je de 64 bit of de 32 bit versie laad. Je laat versie beheer van je dll toch niet door je eigen programma doen?

Need more data. We want your specs. Ik ben ook maar dom. anders: forum, ff reggen, ff topic maken
En als je een oplossing hebt gevonden laat het ook ujb ff in dit topic horen.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
leuk_he schreef op dinsdag 06 januari 2009 @ 10:15:
Je installeert de dll toch 1x op de doel machine? dus de installer kan bepalen of je de 64 bit of de 32 bit versie laad. Je laat versie beheer van je dll toch niet door je eigen programma doen?
Maar de installer heeft alleen Project Output in de Application Folder. Bij Project Output hoort automatisch de DLL die als referentie in het projecit zit... hoe kan ik dan invloed hebben op de DLL die als output wordt gekoppeld aan mijn exe? Dit moet neem ik aan niet in de installer gebeuren maar in het project zelf... Jij hebt het neem ik aan gewoon over de installer van Visual Studio zelf en niet Installshield oid?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik denk dat ik de oplossing gevonden heb :)

Ik heb gewoon expliciet gekozen voor x86. Nu heb ik 1 installer en als ik die installer werkt hij op beide platforms.
Pagina: 1