我为Autodesk Inventor创建了一个AddIn。现在它已经完成并安装在每个用户工作站上。每当我对AddIn进行更新时,用户需要运行安装程序才能获得最新的更新,这个过程是我想要自动化的,用户在工作时总是拥有最新的版本。因此,检查将在Autodesk Inventor加载过程中进行。
我会检查FileVersionInfo
我可以使用在MSDN (https://msdn.microsoft.com/en-us/library/system.diagnostics.fileversioninfo.fileversion(v=vs.110%29.aspx)website )上提供的示例代码来完成这一任务。
Public Shared Sub Main(ByVal args() As String)
' Get the file version for the notepad.
' Use either of the following two commands.
FileVersionInfo.GetVersionInfo(Path.Combine(Environment.SystemDirectory, "Notepad.exe"))
Dim myFileVersionInfo As FileVersionInfo = FileVersionInfo.GetVersionInfo(Environment.SystemDirectory + "\Notepad.exe")
' Print the file name and version number.
Console.WriteLine("File: " + myFileVersionInfo.FileDescription + vbLf + "Version number: " + myFileVersionInfo.FileVersion)
End Sub这导致了这一产出:
Old File: EMIA_001
Version number: 1.0.6113.27965
New File: EMIA_001
Version number: 1.0.6114.20817但是,比较这个版本号的正确方法是什么?
发布于 2017-02-17 16:39:20
首先,要以这种方式自动更新外接程序,您需要做两件事:
其次,对于版本比较,您可以在外接程序中使用一个函数,如下面这样:
Private Function isUpToDate() As Boolean
Dim UpToDate As Boolean = True
Dim FileVersionInfo_LocalDLL As FileVersionInfo = FileVersionInfo.GetVersionInfo(System.Reflection.Assembly.GetExecutingAssembly.Location)
Dim FileVersionInfo_GlobalDLL As FileVersionInfo = FileVersionInfo.GetVersionInfo("YourGlobalDllFullFileName")
If String.Compare(FileVersionInfo_LocalDLL.FileVersion, FileVersionInfo_GlobalDLL.FileVersion) < 0 Then
UpToDate = False
End If
Return UpToDate
End Function发布于 2016-09-27 10:14:24
如果必须始终使用最新版本,那么只需对FileVersion属性使用字符串比较即可。
版本由文件和产品版本的格式组成
FileMajorPart . FileMinorPart . FileBuildPart . FilePrivatePart这些属性中的每一个都可以单独进行比较,例如,如果您只想确保主+小调是相同的。
https://stackoverflow.com/questions/39721793
复制相似问题