2014-09-20 3 views
2

J'ai deux projets C# dire A et B, et projet A utilise un contrôle ActiveX et le projet B projet de référence A..NET exécution du programme sur Any CPU vs x86

Le problème est que le ActiveX Le contrôle est seulement capable de fonctionner sur la plate-forme x86 (à savoir, dans la configuration du projet Visual Studio, nous pouvons changer la plate-forme en Any CPU ou x86), et il s'avère que B doit également fonctionner sur x86. comme il peut affecter beaucoup d'autres choses dans le projet B.

Je me demandais est-il un moyen de contourner cette limitation et d'exécuter tous les projets sur Any CPU? Ou au moins arrêter le projet B (projets appelant) d'être changé en x86?

Un grand merci

+2

En plus Du point de vue de la faisabilité technique, il ne serait pas logique d'avoir quelque chose à compiler à AnyCPU qui ne fonctionnera alors * sur aucun CPU. Cela semble être une [XY-Problem-Question] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem/66378#66378). Pouvez-vous poser la question qui vous trouble? Quels problèmes avez-vous lors de l'utilisation de x86 pour le projet B? – nvoigt

+1

@nvoigt le problème est le projet B est un grand code existant existant que je ne suis pas autorisé à changer. Maintenant, j'ajoute de nouvelles fonctionnalités via le projet A à B. – wuha

+0

Cela devrait être un peu évident. Obtenez sur le téléphone et appelez le fournisseur du composant, demandez la version 64 bits. S'il ne décroche pas ou ne répond pas, remplacez-le par autre chose. –

Répondre

1

Dans le projet A, vous pouvez coder ceci pour permettre le projet B d'être transformé en Any CPU:

// ActiveXClass methods 
static void MyActiveXControlCode() { 
    // ActiveX Control code 
} 

public static void Publisher() { 
    MyActiveXControlCode(); 
} 

Dans le projet B, vous codez:

using ProjectA; 
namespace ProjectB { 
    public class EntryClass { 
     public static void Main() { 
      ActiveXClass.Publisher(); 
     } 
    } 
} 
+1

Hey @ Luís voulez-vous dire tout mettre dans des méthodes statiques? S'il vous plaît pourriez-vous expliquer la raison derrière? Merci – wuha

+0

@wuha J'utilise des méthodes statiques parce que je n'ai pas besoin d'une instance de 'ActiveXClass' pour faire les choses liées à l'ActiveX. –

Questions connexes