Question

J'ai un projet C # Visual Studio (.csproj) qui fait référence à la version Framework64 de System.Data . Lorsque j'essaie de créer à l'aide de MSBuild / Team Foundation Server (TFS) sur un autre ordinateur, il échoue car la DLL 64 bits n'existe pas.

Devrais-je me lier à la version Framework ou est-ce que cela va me limiter lors de l'exécution sur des ordinateurs 64 bits? Est-ce que .NET redirige la liaison pour utiliser 64 bits lorsque cela est possible?

Était-ce utile?

La solution

Je pense que vous voulez dire Un processeur dans votre question, n'est-ce pas? En supposant que ce soit le cas, la liaison sans égard au bitness est la voie à suivre dans presque toutes les circonstances.

Rappelez-vous que le code .NET est JITed (compilé Just In Time) - signifiant un code 32 bits et 64 bits à partir d'un C # ou Le compilateur VB.NET est identique, quelle que soit l'architecture sur laquelle vous envisagez de fonctionner. Lorsque le code est JIT au moment de l’exécution, il devient 32 ou 64 bits.

Dans certaines situations, vous devez respecter l'architecture cible. Un cas spécifique serait toutes les références / dépendances sur les COM - DLL d'enveloppement, .NET Framework fourni ou autrement. Cela étant, ces fichiers DLL seront marqués (dans le cas de COM) comme étant uniquement à 32 bits (car COM n’est qu’une architecture à 32 bits) s’ils ne l’étaient pas, l’interopérabilité avec COM ne fonctionnerait pas. Par conséquent, comme ils sont explicitement marqués, les résultats de votre projet doivent l'être également.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top