【问题标题】:Extracting product version from an ISLE project - VB.NET从 ISLE 项目中提取产品版本 - VB.NET
【发布时间】:2016-01-25 23:52:06
【问题描述】:

我有一个我创建的 Excel 插件项目和一个独立的安装文件。该插件有其 Install Shield Limited Edition - Setup 项目。 当我对代码进行更改时,我会创建一个带有新版本号的新安装文件。

我想从安装项目中提取“产品版本”作为字符串。此处的图像显示了我要提取的内容。 “产品版本”位于安装项目的“常规信息”中。

我尝试使用 Application.ProductVersion,但我认为这给了我 Excel 的版本,而不是我的插件版本。

如何获取插件的产品版本?我的目的是提取此版本号并将其显示在插件功能区中,以便我们可以看到我们正在使用哪个版本(要求之一)。

【问题讨论】:

    标签: vb.net setup-deployment excel-addins


    【解决方案1】:

    版本被写入插件清单文件。要获取它,您应该加载它(清单)然后提取它...

    Dim publishVersion As String = String.Empty
    Dim assemblyVersion As String = String.Empty
    
    ' load the application manifest
    Using xmlrdr As XmlReader = XmlReader.Create("ExcelPTCMAddIn.dll.manifest")
        xmlrdr.MoveToContent
        Do While xmlrdr.Read
            If (xmlrdr.Name = "asmv1:assemblyIdentity") Then
                publishVersion = xmlrdr.Item("version")
            End If
            If ((xmlrdr.Name = "assemblyIdentity") AndAlso (xmlrdr.Item("name") = "ExcelPTCMAddIn")) Then ' there're two occurences of "assemblyIdentity" element, either one is OK
                assemblyVersion = xmlrdr.Item("version")
            End If
        Loop
    End Using     
    

    让我知道这是怎么回事。

    【讨论】:

    • 我得到一个“System.IO.FileNotFoundException”类型的异常。它没有在 \Documents\ExcelPTCMAddIn.dll.manifest 中找到该文件。该文件实际上位于 \Documents\Visual Studio 2013\Projects\ExcelPTCMAddIn\ExcelPTCMAddIn\bin\Debug\ 我必须定位该路径吗?
    • 是的,路径可能不同。试一试?
    • 我在那里写了整个路径,(“....\Documents\Visual Studio 2013\Projects\ExcelPTCMAddIn\ExcelPTCMAddIn\bin\Debug\ExcelPTCMAddIn.dll.manifest”)。但我仍然得到 1.0.0.0 而不是 7.0 我做错了什么?我还是新手。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多