5 $gac = 'C:/WINDOWS/assembly/GAC_MSIL'
6 $fx = 'C:/WINDOWS/Microsoft.NET/Framework'
8 $fx1_1 = File.join $fx, "v1.1.4322"
9 $fx2_0 = File.join $fx, "v2.0.50727"
10 $fx3_0 = 'C:/Program Files/Reference Assemblies/Microsoft/Framework/v3.0'
11 $fx3_5 = 'C:/Program Files/Reference Assemblies/Microsoft/Framework/v3.5'
12 $fx4_0 = 'C:/Program Files/Reference Assemblies/Microsoft/Framework/.NETFramework/v4.0'
13 $sl2_0 = 'C:/Program Files/Microsoft Silverlight/2.0.40115.0'
14 $sl2_0sdk = 'C:/Program Files/Microsoft SDKs/Silverlight/v2.0/Libraries/Client/'
20 "System.Data.OracleClient",
21 "System.DirectoryServices",
23 "System.Runtime.Remoting",
24 "System.Runtime.Serialization.Formatters.Soap",
26 "System.ServiceProcess",
28 "System.Web.Services",
29 "System.Windows.Forms",
32 "Microsoft.VisualBasic",
34 "System.Configuration.Install",
36 "System.Drawing.Design",
37 "System.EnterpriseServices",
45 "System.Configuration",
47 "System.Data.OracleClient",
48 "System.DirectoryServices",
50 "System.Runtime.Remoting",
51 "System.Runtime.Serialization.Formatters.Soap",
53 "System.ServiceProcess",
54 "System.Transactions",
56 "System.Web.Services",
57 "System.Windows.Forms",
60 "Microsoft.VisualBasic",
62 "Microsoft.Build.Engine",
63 "Microsoft.Build.Framework",
64 "Microsoft.Build.Tasks",
65 "Microsoft.Build.Utilities",
67 "System.Configuration.Install",
69 "System.Drawing.Design",
70 "System.EnterpriseServices",
78 "PresentationFramework",
82 "System.IdentityModel",
83 "System.IdentityModel.Selectors",
85 "System.Runtime.Serialization",
86 "System.ServiceModel",
88 "System.Workflow.Activities",
89 "System.Workflow.ComponentModel",
90 "System.Workflow.Runtime",
92 "PresentationBuildTasks",
94 "PresentationFramework.Aero",
95 "PresentationFramework.Classic",
96 "PresentationFramework.Luna",
97 "PresentationFramework.Royale",
107 "System.AddIn.Contract",
108 "System.Configuration",
110 "System.Configuration.Install",
113 "System.Data.OracleClient",
114 "System.DirectoryServices",
115 # "System.DirectoryServices.AccountManagement",
116 # "System.DirectoryServices.Protocols",
119 "System.Runtime.Remoting",
121 "System.ServiceProcess",
122 "System.Transactions",
124 "System.Web.Extensions",
125 "System.Web.Extensions.Design",
127 "System.Web.RegularExpressions",
128 "System.Web.Services",
129 "System.Windows.Forms",
133 "System.Runtime.Serialization.Formatters.Soap",
135 "Microsoft.VisualBasic",
137 "Microsoft.Build.Engine",
138 "Microsoft.Build.Framework",
139 "Microsoft.Build.Tasks",
140 "Microsoft.Build.Utilities",
142 "System.Configuration.Install",
144 "System.Drawing.Design",
145 "System.EnterpriseServices",
147 "System.Management.Instrumentation",
154 "Microsoft.Build.Conversion.v4.0",
156 "Microsoft.Build.Engine",
157 "Microsoft.Build.Framework",
158 "Microsoft.Build.Tasks.v4.0",
159 "Microsoft.Build.Utilities.v4.0",
161 "Microsoft.Data.Entity.Build.Tasks",
163 "Microsoft.VisualBasic.Compatibility.Data",
164 "Microsoft.VisualBasic.Compatibility",
165 "Microsoft.VisualBasic",
166 # "Microsoft.VisualC.STLCLR",
168 "PresentationBuildTasks",
170 "PresentationFramework.Aero",
171 "PresentationFramework.Classic",
172 "PresentationFramework",
173 "PresentationFramework.Luna",
174 "PresentationFramework.Royale",
179 "System.Activities.Core.Presentation",
180 "System.Activities.DurableInstancing",
181 "System.Activities.Presentation",
182 "System.AddIn.Contract",
184 "System.ComponentModel.Composition",
185 "System.ComponentModel.DataAnnotations",
186 "System.configuration",
187 "System.Configuration.Install",
189 "System.Data.DataSetExtensions",
191 "System.Data.Entity.Design",
192 "System.Data.Entity",
194 "System.Data.OracleClient",
195 "System.Data.Services.Client",
196 "System.Data.Services.Design",
197 "System.Data.Services",
198 "System.Data.SqlXml",
202 "System.DirectoryServices.AccountManagement",
203 "System.DirectoryServices",
204 "System.DirectoryServices.Protocols",
206 "System.Drawing.Design",
209 "System.EnterpriseServices",
210 "System.EnterpriseServices.Thunk",
211 "System.EnterpriseServices.Wrapper",
212 "System.IdentityModel",
213 "System.IdentityModel.Selectors",
216 "System.Management.Instrumentation",
222 "System.Runtime.Caching",
223 "System.Runtime.Remoting",
224 "System.Runtime.Serialization",
225 "System.Runtime.Serialization.Formatters.Soap",
227 "System.ServiceModel.Activation",
228 "System.ServiceModel.Activities",
229 "System.ServiceModel.Channels",
230 "System.ServiceModel.Discovery",
231 "System.ServiceModel",
232 "System.ServiceModel.Routing",
233 "System.ServiceModel.Web",
234 "System.ServiceProcess",
236 "System.Transactions",
237 "System.Web.Abstractions",
238 "System.Web.ApplicationServices",
239 "System.Web.DataVisualization.Design",
240 "System.Web.DataVisualization",
242 "System.Web.DynamicData.Design",
243 "System.Web.DynamicData",
244 "System.Web.Entity.Design",
246 "System.Web.Extensions.Design",
247 "System.Web.Extensions",
249 "System.Web.RegularExpressions",
250 "System.Web.Routing",
251 "System.Web.Services",
252 "System.Windows.Forms.DataVisualization.Design",
253 "System.Windows.Forms.DataVisualization",
254 "System.Windows.Forms",
255 "System.Windows.Presentation",
256 "System.Workflow.Activities",
257 "System.Workflow.ComponentModel",
258 "System.Workflow.Runtime",
259 "System.WorkflowServices",
261 "System.Xaml.Hosting",
272 "Microsoft.VisualBasic",
276 "System.Runtime.Serialization",
277 "System.ServiceModel",
278 "System.Windows.Browser",
282 "System.Windows.Controls",
283 "System.Windows.Controls.Data",
286 def locate(assembly, fxs = nil)
289 file = File.join fx, assembly + ".dll"
290 return file if File.file?(file)
294 gac = File.join $gac, assembly, "**", "*.dll"
298 return glob.first if glob and glob.length > 0
302 Dir.glob(glob).each do |file|
307 def clean(pattern, allow_create = false)
308 if allow_create and not File.directory? "masterinfos"
309 Dir.mkdir("masterinfos")
313 delete(File.join("masterinfos", pattern))
316 def generate(location, assembly)
317 out = File.join "masterinfos", assembly + ".xml"
318 system("./mono-api-info.exe \"#{location}\" > #{out}")
321 def process(profile, assemblies, fxs = nil)
324 assemblies.each do |assembly|
325 if assembly != nil and assembly.length > 0
327 location = locate(assembly, fxs)
329 generate(location, assembly)
331 puts "fail to locate " + assembly
333 #puts " " + location if location
339 file = "masterinfos-#{profile}.tar"
341 system("tar -cf #{file} masterinfos")
342 system("gzip #{file}")
346 Dir.delete("masterinfos")
351 process("1.1", $net_1_1, [$fx1_1])
352 process("2.0", $net_2_0, [$fx2_0])
353 process("3.0", $net_3_0, [$fx3_0, $fx2_0])
354 process("3.5", $net_3_5, [$fx3_5, $fx2_0])
355 process("4.0", $net_4_0, [$fx4_0])
356 process("SL2", $sl_2_0, [$sl2_0, $sl2_0sdk])