我正在开发一个简单的安装程序,使用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