用于更改安装项目的 ProductVersion 的预构建事件只有在构建之后才会生效
我已按照此处描述的步骤修改 ProductCode和 ProductVersion 在每个构建的设置项目上,使用预构建事件。
(意思是 - 我创建了一个控制台应用程序,它使用上述代码来修改 .vdproj 文件,并从预构建事件中触发它)。
操作成功,构建完成后我可以看到安装项目的“版本”属性已更改。
但是,编译的 msi 的“ProductVersion”属性不会更改。
仅当我再次构建安装项目时,我才能看到“ProductVersion”已更改。
是否有可能在msi编译之后发生prebuild事件?
I've followed the steps described here to modify the ProductCode and ProductVersion on my setup project on each build, using a prebuild event.
(meaning- I created a console application that uses the above-mentioned code to modify the .vdproj file, and I trigger it from the pre-build event).
The operation is successful, and after the build is done I can see that the 'Version' property of the setup project has changed.
However, the 'ProductVersion' property of the compiled msi does not change.
Only if I build the setup project again, I can see that the 'ProductVersion' has changed.
Is it possible that the prebuild event occurs after the msi is compiled?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我似乎记得 2005 年左右 VDPROJ 上的预构建操作出现问题,我们必须创建具有构建依赖项的假 C++ 项目,以便我们可以使用 C++ 的后构建在 VDPROJ 构建之前执行操作。
根据记录,VDPROJ 一切皆有可能(失败)。由于该工具的缺点,它在下一版本的 Visual Studio 中已被弃用。
对构建的 MSI 中的属性表进行构建后 SQL 更新可能是更好的选择。切换到不同的工具肯定是更好的选择。
I seem to recall having problems with the prebuild action on VDPROJ back around 2005 and we had to create fake C++ projects with build dependencies so we could use the postbuild of the C++ to do things before the VDPROJ build.
For the record, anything is possible (to fail) with VDPROJ. The tool is deprecated in the next release of Visual Studio because of it's shortcomings.
A postbuild SQL update of the Property table in the built MSI might be a better option. Switching to a different tool would certainly be a better option.