2011-06-09 147 views
3

我正在爲64位計算機編寫Visual Studio 2010中的安裝程序。在那裏,我使用自定義操作來獲取安裝過程中的CheckBox的值。如何在Visual Studio 2010中爲c#安裝程序編寫自定義操作?

自定義操作如下:

/cbvalue="[CHECKBOXA1]" 

,並在我的安裝程序類我加入以下代碼來獲取參數:

string myInput = Context.Parameters["cbvalue"]; 

的設置項目成功生成,但是當我嘗試安裝安裝文件,在安裝過程中,會出現以下錯誤:

Error: 1001 System.BadImageFormatException.could not load an assembly.....

當我在沒有添加自定義操作的情況下嘗試此操作時,它會正確安裝。 而且我想找到一種方法來調試安裝項目。

+0

該問題看起來類似於這個:[WiX自定義操作項目 - BadImageFormatException](http://stackoverflow.com/questions/6275680/wix-custom-action-project-badimageformatexception)。 – 2011-06-09 08:09:19

回答

0

你有沒有添加自定義參數在安裝(),像這樣:

public override void Install(System.Collections.IDictionary stateSaver) 
{ 
    base.Install(stateSaver); 
    stateSaver.Add("cbvalue", Context.Parameters["cbvalue"].ToString()); 
} 

所以,你應該已經得到的東西是這樣的:

public override void Commit(System.Collections.IDictionary savedState) 
{ 
    base.Commit(savedState); 
    System.Windows.Forms.MessageBox(savedState["bcvalue"].ToString());  
} 
+0

非常感謝您的快速幫助。我嘗試過這些,但仍然遇到同樣的錯誤。 – kalani 2011-06-09 06:13:40

0

如果您使用自定義創建64位安裝程序總是記得你會得到這個錯誤,因爲自定義操作總是使用x86架構來構建,所以你需要使用相同的自定義操作,然後使用ORCA Tool編輯你的msi,參見this link

相關問題