我正在開發一個簡單的安裝程序,使用WiX
,我試圖在GAC上安裝.dll和發佈者策略。強制Visual Studio 2010使用舊版本的gacutil.exe(Post Build event)
我使用安裝程序成功地在GAC上添加了.dll。但我想使用Visual Studio中的PostBuild事件來執行msbuild命令。我需要做的事情的順序是:
在Visual Studio中的一個後生成事件創建
publisher policy
。執行命令
al /link:the.config /out:the.policy.dll /keyfile:thekey.snk /platform:x86
發佈使用特定GACUTIL政策。
如果我是正確的,如果我執行gacutil -i Policy.1.0.TestLibrary.dll
,Visual Studio將在新的GAC 安裝這個政策,我想用舊的一個。
如何讓Visual Studio在Post Build事件中使用特定的gacutil?
我想這對於PostBuild事件:
al /link:"$(SolutionDir)"TestLibrary.dll.config /out:"$(SolutionDir)"Policy.1.0.TestLibrary.dll /keyfile:"$(SolutionDir)"sgKey.snk /platform:x86
,但得到The command "...." exited with code 9009.
另外,如果我發佈Library.v1.0.dll在老GAC,然後我安裝Library.v2。 0.dll,如果我從v1.0創建發佈者策略到v2.0,他們會找到對方嗎?
[1]:GAC用於.Net Framework 4.0及更高版本。
[2]:GAC用於.Net Framework 3.5及更低版本。
只需指定要使用的gacutil.exe版本的完整路徑即可。與C:\ Program Files \ Microsoft SDKs \ Windows \ v6.0A \ Bin \ gacutil.exe一樣。在開發機器上運行gacutil.exe是一個非常糟糕的想法btw。測試任何東西也沒用,客戶的機器不會有gacutil.exe可用。 –
我同意。我最終使用所需的gacutil構建自己的策略,並在WiX上手動插入策略和庫。 – Sonhja