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.v3.5",
155 "Microsoft.Build.Conversion.v4.0",
157 "Microsoft.Build.Engine",
158 "Microsoft.Build.Framework",
159 # "Microsoft.Build.Tasks.v3.5",
160 "Microsoft.Build.Tasks.v4.0",
161 # "Microsoft.Build.Utilities.v3.5",
162 "Microsoft.Build.Utilities.v4.0",
165 "Microsoft.VisualBasic.Compatibility.Data",
166 "Microsoft.VisualBasic.Compatibility",
167 "Microsoft.VisualBasic",
168 # "Microsoft.VisualC",
169 # "Microsoft.VisualC.STLCLR",
171 "PresentationBuildTasks",
173 "PresentationFramework.Aero",
174 "PresentationFramework.Classic",
175 "PresentationFramework",
176 "PresentationFramework.Luna",
177 "PresentationFramework.Royale",
180 "ReferenceAssemblyBuildTask",
182 "System.Activities.Core.Design",
183 "System.Activities.Design.Base",
184 "System.Activities.Design",
186 "System.Activities.Extended",
187 "System.AddIn.Contract",
190 "System.ComponentModel.Composition",
191 "System.ComponentModel.DataAnnotations",
192 "System.configuration",
193 "System.Configuration.Install",
195 "System.Data.DataSetExtensions",
197 "System.Data.Entity.Design",
198 "System.Data.Entity",
200 "System.Data.OracleClient",
201 "System.Data.Services.Client",
202 "System.Data.Services.Design",
203 "System.Data.Services",
204 "System.Data.SqlXml",
207 "System.DirectoryServices.AccountManagement",
208 "System.DirectoryServices",
209 "System.DirectoryServices.Protocols",
211 "System.Drawing.Design",
214 "System.EnterpriseServices",
215 "System.EnterpriseServices.Thunk",
216 "System.EnterpriseServices.Wrapper",
217 "System.IdentityModel",
218 "System.IdentityModel.Selectors",
221 "System.Management.Instrumentation",
226 "System.Runtime.Remoting",
227 "System.Runtime.Serialization",
228 "System.Runtime.Serialization.Formatters.Soap",
230 "System.ServiceModel.Activities",
231 "System.ServiceModel.Channels",
232 "System.ServiceModel.Discovery",
233 "System.ServiceModel",
234 "System.ServiceModel.Routing",
235 "System.ServiceModel.Web",
236 "System.ServiceProcess",
238 "System.Transactions",
239 "System.Web.Abstractions",
240 "System.Web.DataVisualization.Design",
241 "System.Web.DataVisualization",
243 "System.Web.DynamicData.Design",
244 "System.Web.DynamicData",
245 "System.Web.Entity.Design",
247 "System.Web.Extensions.Design",
248 "System.Web.Extensions",
250 "System.Web.RegularExpressions",
251 "System.Web.Routing",
252 "System.Web.Services",
253 "System.Windows.Forms.DataVisualization.Design",
254 "System.Windows.Forms.DataVisualization",
255 "System.Windows.Forms",
256 "System.Windows.Presentation",
257 "System.Workflow.Activities",
258 "System.Workflow.ComponentModel",
259 "System.Workflow.Runtime",
260 "System.WorkflowServices",
262 "System.Xaml.Hosting",
273 "Microsoft.VisualBasic",
277 "System.Runtime.Serialization",
278 "System.ServiceModel",
279 "System.Windows.Browser",
283 "System.Windows.Controls",
284 "System.Windows.Controls.Data",
287 def locate(assembly, fxs = nil)
290 file = File.join fx, assembly + ".dll"
291 return file if File.file?(file)
295 gac = File.join $gac, assembly, "**", "*.dll"
299 return glob.first if glob and glob.length > 0
303 Dir.glob(glob).each do |file|
308 def clean(pattern, allow_create = false)
309 if allow_create and not File.directory? "masterinfos"
310 Dir.mkdir("masterinfos")
314 delete(File.join("masterinfos", pattern))
317 def generate(location, assembly)
318 out = File.join "masterinfos", assembly + ".xml"
319 system("./mono-api-info.exe \"#{location}\" > #{out}")
322 def process(profile, assemblies, fxs = nil)
325 assemblies.each do |assembly|
326 if assembly != nil and assembly.length > 0
328 location = locate(assembly, fxs)
330 generate(location, assembly)
332 puts "fail to locate " + assembly
334 #puts " " + location if location
340 file = "masterinfos-#{profile}.tar"
342 system("tar -cf #{file} masterinfos")
343 system("gzip #{file}")
347 Dir.delete("masterinfos")
352 process("1.1", $net_1_1, [$fx1_1])
353 process("2.0", $net_2_0, [$fx2_0])
354 process("3.0", $net_3_0, [$fx3_0, $fx2_0])
355 process("3.5", $net_3_5, [$fx3_5, $fx2_0])
356 process("4.0", $net_4_0, [$fx4_0])
357 process("SL2", $sl_2_0, [$sl2_0, $sl2_0sdk])