2014-09-04 24 views
0

我有一個C#.NET安裝程序類DLL正由InstallShield 2011用於在安裝過程結束時執行一些自定義代碼。 .NET Installer類當前的目標是.NET Framework 3.5。更改InstallShield中使用的安裝程序類的.NET Framework版本

當將.NET Installer類更改爲目標.NET Framework 4.0並將新DLL複製到InstallShield項目時,當用於啓動自定義安裝程序代碼時,出現Error 1001消息。

測試機器安裝了最新的.NET Framework版本。

是否需要在InstallShield中更改以指定.NET Installer類的目標版本?

回答

-1

InstallShield中,.NET框架文件位置沒有指向.NET 4

此文件位置在指定的InstallShield - 工具 - 選項 - .NET - .NET框架文件位置。

1

Windows安裝程序在自定義操作中重複使用自定義操作沙箱。如果一個自定義動作觸發CLR 2.0,另一個自定義動作嘗試使用CLR 4.0運行,則會得到BadImageFormatException。這是InstallUtil(安裝程序類)自定義操作的衆多缺陷之一。

改爲研究Windows安裝程序XML(WiX)部署工具基礎(DTF)自定義操作。它們被封裝爲原生Win32 DLL自定義操作並與InstallShield兼容。只有本地代碼在沙箱中運行,並且所有託管自定義操作都將在本地代碼充當MSI API代理的情況下運行。 (東西的InstallUtil自定義操作甚至不能相信與否。)

Deployment Tools Foundation (DTF) Managed Custom Actions

+0

只是要明確,這個問題CLR然後沒有看到與威克斯DTF?儘管這是自定義操作沙箱的強大問題。正是那種讓我擔心.NET和層和依賴的東西。 – 2017-09-12 19:02:16

+0

是的。這一切都在我鏈接的文章中。 – 2017-09-12 19:22:46

相關問題