2014-09-20 67 views
2

上運行程序,我有兩個C#項目說A和B,以及項目A使用ActiveX控件,爲項目B將引用項目A..NET任何CPU VS 86

的問題是帶有ActiveX是A控制只能在x86平臺上運行(即在Visual Studio項目配置中,我們可以將平臺更改爲任何CPU或x86),並且事實證明,B一旦引用A,也需要在x86上運行。這是有問題的因爲它可能會影響項目B中的許多其他事情。

我想知道是否有任何方法可以解決此限制並在任何CPU上運行所有項目?或者至少停止項目B(調用項目)被更改爲x86?

非常感謝

+2

除了從技術可行性來看,將任何東西編譯爲AnyCPU並不會在任何CPU上運行*都沒有多大意義。這似乎是[XY-Problem-Question](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem/66378#66378)。你能問問實際上困擾着你嗎?在項目B中使用x86時有什麼問題? – nvoigt 2014-09-20 08:10:20

+1

@nvoigt問題是項目B是一個很大的現有遺留代碼,我不允許更改。現在我通過項目A向B添加了一些新功能。 – wuha 2014-09-20 08:21:56

+0

它應該有點顯而易見。打開電話並打電話給組件的供應商,索要64位版本。如果他沒有拿起或說不,然後用其他東西替換它。 – 2014-09-20 08:43:42

回答

1

在項目中,您可以編寫這使項目B到可以變成任何CPU:

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

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

在項目B,你的代碼:

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

嘿@路易斯你的意思是把一切都放在靜態方法中?請你能解釋背後的原因嗎?謝謝 – wuha 2014-09-20 13:17:05

+0

@wuha我使用的是靜態方法,因爲我不需要'ActiveXClass'的實例來做ActiveX相關的東西。 – 2014-09-22 16:48:24