2009-12-03 61 views
2

我們有一個32位的終端服務計算機,運行我們使用.NET構建的一些Windows服務。最近我們把所有東西都移到了64位機器上。大部分工作。但是,我們從apachefop.net的dll中感到悲傷。當移動到64位機器時對dll的影響

特別是,我們得到以下錯誤

Error: Plugin Transcript Service Execution Failed: Could not load file or assembly 'apachefop.net, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. An attempt was made to load a program with an incorrect format.

我猜,這是因爲它並不意味着在64位計算機上工作。有關如何糾正這種情況的建議?

回答

5

這些問題似乎是由於您的程序集已使用anycpu設置進行編譯而引起的。在這種模式下,當在一個64位的機器上運行時,你的進程會自動變成一個64位的進程,而你的本機引用不會......因爲你不可能從64位進程加載32位庫,煩惱。

要迅速診斷,如果它是你可以使用corflags.exe這是.NET Framework的一部分的情況下: corflags.exe pathtoyourdotnetprogram位/ 32位+

然後運行程序。如果您的軟件運行良好,那麼您應該更改項目中的anycpu設置,以強制編譯器編譯爲32位程序集。

+0

太棒了!非常感謝Patrice。 – Daniel