我有一個安裝有應用程序的託管代碼.dll自定義操作的InstallShield 2010基本MSI安裝。如果我使用.Net 3.5構建自定義動作,但如果使用4.0構建它,它將失敗。自定義操作的CLR版本
我在手冊中看到了設置CLR版本的參考,但我對如何在MSI中實際做到這一點感到茫然。
所有幫助表示讚賞。
T.
編輯1:
我跑了一個運行CA建立與.NET版本4的簡單微星,這裏有一些有趣的東西挑出來的日誌:
物業(S):RedirectedDllSupport = 2
屬性(S):MsiWin32AssemblySupport = 5.1.2600.5512
屬性(S):MsiNetAssemblySupport = 4.0.30319.1
....
MSI(C)(℃:10)[12:12:15:689]:連接到用於CA接口服務。
的InstallShield:加載CLR成功
的InstallShield:裝載組件[#v4.dll]
的InstallShield:解決組件的FileKey [#v4.dll]。
的InstallShield: - 解析爲C:\ Program Files文件\我的公司名稱\我的產品名稱\ V4.dll
的InstallShield:從路徑C裝載組件:\ Program Files文件\我的公司名稱\我的產品名稱\ V4.dll
InstallShield:無法加載託管自定義操作程序集[#v4.dll]:無法加載文件或程序集文件:/// C:\ Program Files \ My公司名稱\我的產品名稱\ V4 .dll'或其依賴項之一。此程序集由比當前加載的運行時更新的運行時構建,無法加載。
行動結束12:12:15:v4Test。返回值3
....
感謝您的幫助。它仍然不起作用。我使用日誌運行安裝程序,並且MsiNetAssemblySupport屬性將其值顯示爲4.0.30319.1。我已經爲問題添加了一些日誌詳細信息。 – tzerb
此自定義操作是否嘗試使用[Isolated Components](http://msdn.microsoft.com/en-US/Library/Windows/Desktop/eb5f7088-30e0-4644-813a-c93e6f56ccbf)?我看到[RedirectedDLLSupport](http://msdn.microsoft。com/En-US/Library/Windows/Desktop/703489c4-cac4-442c-bd96-d3927491a864)已被設置。可能缺少必需的依賴關係。 –
根本沒有依賴關係。這是一個簡單的類,有一個公共方法: class CA {public int Execute(string s,string t){return 55; }}; 我不認爲我做了任何設置RedirectedDLLSupport。我仍在查找這個和孤立組件的線索。 感謝您的幫助! – tzerb