Como faço para incorporar uma versão do arquivo em um arquivo MSI com o Visual Studio?
-
02-07-2019 - |
Pergunta
Eu tenho um projeto de instalação para o meu programa C #, e este projeto de instalação tem uma versão em suas propriedades. Eu gostaria que o arquivo MSI que é gerado ter esta versão embutida nele, para que eu possa mouse sobre ele no explorador e ver qual a versão é o arquivo.
Eu estou usando VS2008. Como posso fazer isso?
Solução
Se você simplesmente adicionar o "Version: 1.5.0" texto na propriedade Descrição da configuração do projeto, o número da versão também mostra sobre o arquivo MSI assim:
Outras dicas
Essa é uma boa pergunta, mas eu não sei qualquer ferramenta de configuração que poderia fazer isso. Além disso eu nunca encontrou um arquivo MSI com a versão do arquivo recurso embutido nele, por isso não é uma prática comum. Normalmente, se eu quiser saber a versão de um arquivo MSI Eu tenho que abri-lo no Orca e verificar ProductVersion propriedade lá (na tabela de propriedade).
Tanto quanto eu sei arquivo MSI nunca vai mostrar a versão. simples razão é que os arquivos MSI não são arquivos PE, eles são espécie de banco de dados. Msiexec.exe então interpreta esse banco de dados para fazer a instalação real. A propriedade versão que você menciona é usado pelo motor MSI internamente para upgrades, desinstala etc e nunca é exibido.
Abra o arquivo .vdproj associada em um editor de texto. Procure a seção "Produtos", em seguida, modificar o "ProductVersion", e os campos "fabricante".
"Product"
{
"Name" = "8:Microsoft Visual Studio"
"ProductName" = "8:tidAxCleanupScript"
"ProductCode" = "8:{0949AAAD-2C29-415E-851C-825C74C9CA81}"
"PackageCode" = "8:{8F012EF1-D5D0-43DC-BBFD-761A639DDB07}"
"UpgradeCode" = "8:{38DE1949-0782-4EF3-BDC2-080EB5B73EF8}"
"RestartWWWService" = "11:FALSE"
"RemovePreviousVersions" = "11:TRUE"
"DetectNewerInstalledVersion" = "11:TRUE"
"InstallAllUsers" = "11:FALSE"
"ProductVersion" = "8:**1.5.0**"
"Manufacturer" = "8:**Default Company Name**"
"ARPHELPTELEPHONE" = "8:"
Eu posso estar errado, mas não a versão msi seguir a versão no arquivo AssemblyInfo do seu projeto de inicialização?