2013-05-16 36 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

问题解决了。这个政策出现了不一致,这就是为什么它不能正常工作......

相关问题