2013-05-16 35 views
1

我正在開發一個簡單的安裝程序,使用WiX,我試圖在GAC上安裝.dll和發佈者策略。強制Visual Studio 2010使用舊版本的gacutil.exe(Post Build event)

我使用安裝程序成功地在GAC上添加了.dll。但我想使用Visual Studio中的PostBuild事件來執行msbuild命令。我需要做的事情的順序是:

  1. 在Visual Studio中的一個後生成事件創建publisher policy

  2. 執行命令al /link:the.config /out:the.policy.dll /keyfile:thekey.snk /platform:x86

  3. 發佈使用特定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及更低版本。

+0

只需指定要使用的gacutil.exe版本的完整路徑即可。與C:\ Program Files \ Microsoft SDKs \ Windows \ v6.0A \ Bin \ gacutil.exe一樣。在開發機器上運行gacutil.exe是一個非常糟糕的想法btw。測試任何東西也沒用,客戶的機器不會有gacutil.exe可用。 –

+0

我同意。我最終使用所需的gacutil構建自己的策略,並在WiX上手動插入策略和庫。 – Sonhja

回答

0

問題解決了。這個政策出現了不一致,這就是爲什麼它不能正常工作......

相關問題