2 // System.Diagnostics.FileVersionInfo.cs
5 // Dick Porter (dick@ximian.com)
7 // (C) 2002 Ximian, Inc.
11 using System.Runtime.CompilerServices;
13 namespace System.Diagnostics {
14 public sealed class FileVersionInfo {
15 /* There is no public constructor for this class, it
16 * is initialised by the runtime. All the private
17 * variables here are looked up by name, so dont
18 * change them without also changing the runtime
20 private string comments;
21 private string companyname;
22 private string filedescription;
23 private string filename;
24 private string fileversion;
25 private string internalname;
26 private string language;
27 private string legalcopyright;
28 private string legaltrademarks;
29 private string originalfilename;
30 private string privatebuild;
31 private string productname;
32 private string productversion;
33 private string specialbuild;
35 private bool ispatched;
36 private bool isprerelease;
37 private bool isprivatebuild;
38 private bool isspecialbuild;
39 private int filemajorpart;
40 private int fileminorpart;
41 private int filebuildpart;
42 private int fileprivatepart;
43 private int productmajorpart;
44 private int productminorpart;
45 private int productbuildpart;
46 private int productprivatepart;
48 private FileVersionInfo() {
49 /* This is here just to shut the compiler up */
59 originalfilename=null;
80 public string Comments {
86 public string CompanyName {
92 public int FileBuildPart {
94 return(filebuildpart);
98 public string FileDescription {
100 return(filedescription);
104 public int FileMajorPart {
106 return(filemajorpart);
110 public int FileMinorPart {
112 return(fileminorpart);
116 public string FileName {
122 public int FilePrivatePart {
124 return(fileprivatepart);
128 public string FileVersion {
134 public string InternalName {
136 return(internalname);
140 public bool IsDebug {
146 public bool IsPatched {
152 public bool IsPreRelease {
154 return(isprerelease);
158 public bool IsPrivateBuild {
160 return(isprivatebuild);
164 public bool IsSpecialBuild {
166 return(isspecialbuild);
170 public string Language {
176 public string LegalCopyright {
178 return(legalcopyright);
182 public string LegalTrademarks {
184 return(legaltrademarks);
188 public string OriginalFilename {
190 return(originalfilename);
194 public string PrivateBuild {
196 return(privatebuild);
200 public int ProductBuildPart {
202 return(productbuildpart);
206 public int ProductMajorPart {
208 return(productmajorpart);
212 public int ProductMinorPart {
214 return(productminorpart);
218 public string ProductName {
224 public int ProductPrivatePart {
226 return(productprivatepart);
230 public string ProductVersion {
232 return(productversion);
236 public string SpecialBuild {
238 return(specialbuild);
242 [MethodImplAttribute(MethodImplOptions.InternalCall)]
243 private extern void GetVersionInfo_internal(string fileName);
245 public static FileVersionInfo GetVersionInfo(string fileName) {
246 FileVersionInfo fvi=new FileVersionInfo();
248 fvi.GetVersionInfo_internal(fileName);
253 public override string ToString() {
256 str="File: " + filename + "\n";
257 str+="InternalName: " + internalname + "\n";
258 str+="OriginalFilename: " + originalfilename + "\n";
259 str+="FileVersion: " + fileversion + "\n";
260 str+="FileDescription: " + filedescription + "\n";
261 str+="Product: " + productname + "\n";
262 str+="ProductVersion: " + productversion + "\n";
263 str+="Debug: " + isdebug + "\n";
264 str+="Patched: " + ispatched + "\n";
265 str+="PreRelease: " + isprerelease + "\n";
266 str+="PrivateBuild: " + isprivatebuild + "\n";
267 str+="SpecialBuild: " + isspecialbuild + "\n";
268 str+="Language " + language + "\n";