我想从我的C#.NET应用程序以编程方式安装一个给定的.msi包,最好是我的应用程序指定的安装参数(如安装路径,拒绝crapware等).
我做了一些搜索,但我还没有找到任何有用的东西.最有希望的命中了这个话题,但我找不到任何文档Microsoft.Deployment.WindowsInstaller或WindowsInstaller.Installer与此有关.
我们来讨论以下主题.目前正在部署的应用程序有很好的知道xcopy方法.这种方法很难管理依赖项,文件更新等.有一些软件包的帮助下启动应用程序部署的想法,你知道你在Linux的帮助下RPM,但适用于Windows.
所以我有疑问:在Windows经典Windows安装程序(msi)或nuget或其他东西上使用什么包系统更好?
有没有办法读取msi文件中的属性?
例如,给定一个msi文件名Testpackage.msi
我需要找到
productName
PackageCode
version
Run Code Online (Sandbox Code Playgroud)
我将使用它与WMI卸载
string objPath = string.Format("Win32_Product.IdentifyingNumber='{0}',Name='{1}',Version='{2}'", "{AC9C1263-2BA8-4863-BE18-01232375CE42}", "testproduct", "10.0.0.0");
Run Code Online (Sandbox Code Playgroud)
更新:使用Orca是一个很好的选择,如果这可以以编程方式实现,那么我可以使用它来生成自动发行说明.并且在卸载程序中也是如此.