@@ -143,9 +143,9 @@ private bool AddSharedAssembly(AssemblyRecord assembly)
143
143
AssemblyName = assembly . Name ,
144
144
AssemblyPathsAndFileVersions = new List < Tuple < string , Version > > ( )
145
145
{
146
- new Tuple < string , Version > ( assembly . Location , new Version ( assembly . AssemblyFileMajorVersion ,
146
+ new Tuple < string , Version > ( assembly . Location , new Version ( assembly . AssemblyFileMajorVersion ,
147
147
assembly . AssemblyFileMinorVersion ) ) ,
148
- new Tuple < string , Version > ( stored . Location , new Version ( stored . AssemblyFileMajorVersion ,
148
+ new Tuple < string , Version > ( stored . Location , new Version ( stored . AssemblyFileMajorVersion ,
149
149
stored . AssemblyFileMinorVersion ) )
150
150
151
151
} ,
@@ -195,9 +195,9 @@ private bool AddSharedAssemblyExactVersion(AssemblyRecord record)
195
195
ProblemId = CommonAuthenticationMismatch ,
196
196
AssemblyPathsAndFileVersions = new List < Tuple < string , Version > > ( )
197
197
{
198
- new Tuple < string , Version > ( record . Location , new Version ( record . AssemblyFileMajorVersion ,
198
+ new Tuple < string , Version > ( record . Location , new Version ( record . AssemblyFileMajorVersion ,
199
199
record . AssemblyFileMinorVersion ) ) ,
200
- new Tuple < string , Version > ( stored . Location , new Version ( stored . AssemblyFileMajorVersion ,
200
+ new Tuple < string , Version > ( stored . Location , new Version ( stored . AssemblyFileMajorVersion ,
201
201
stored . AssemblyFileMinorVersion ) ) ,
202
202
} ,
203
203
Description = string . Format ( "Assembly {0} has multiple versions as specified in 'Target'" ,
@@ -225,7 +225,7 @@ private static bool RequiresExactVersionMatch(AssemblyRecord name)
225
225
226
226
private static bool IsFrameworkAssembly ( AssemblyName name )
227
227
{
228
- return name . Name . StartsWith ( "System" ) || name . Name . Equals ( "mscorlib" )
228
+ return name . Name . StartsWith ( "System" ) || name . Name . Equals ( "mscorlib" )
229
229
|| FrameworkAssemblies . Contains ( name . Name ) ;
230
230
}
231
231
@@ -250,6 +250,15 @@ private void ProcessDirectory(string directoryPath)
250
250
}
251
251
252
252
// Now check for assembly mismatches
253
+ foreach ( var assembly in _assemblies . Values )
254
+ {
255
+
256
+ foreach ( var reference in assembly . Children )
257
+ {
258
+ CheckAssemblyReference ( reference , assembly ) ;
259
+ }
260
+ }
261
+
253
262
foreach ( var assembly in _assemblies . Values )
254
263
{
255
264
foreach ( var parent in assembly . ReferencingAssembly )
@@ -265,10 +274,6 @@ private void ProcessDirectory(string directoryPath)
265
274
} ) ;
266
275
}
267
276
268
- foreach ( var reference in assembly . Children )
269
- {
270
- CheckAssemblyReference ( reference , assembly ) ;
271
- }
272
277
}
273
278
274
279
FindExtraAssemblies ( ) ;
@@ -284,7 +289,7 @@ private static bool IsCommandAssembly(AssemblyRecord assembly)
284
289
285
290
private void FindExtraAssemblies ( )
286
291
{
287
- if ( _assemblies . Values . Any ( a => ! IsCommandAssembly ( a ) && ( a . ReferencingAssembly == null
292
+ if ( _assemblies . Values . Any ( a => ! IsCommandAssembly ( a ) && ( a . ReferencingAssembly == null
288
293
|| a . ReferencingAssembly . Count == 0 || ! a . GetAncestors ( ) . Any ( IsCommandAssembly ) ) ) )
289
294
{
290
295
foreach (
@@ -297,7 +302,7 @@ var assembly in
297
302
AssemblyName = assembly . Name ,
298
303
Severity = 2 ,
299
304
ProblemId = ExtraAssemblyRecord ,
300
- Description = string . Format ( "Assembly {0} is not referenced from any cmdlets assembly" ,
305
+ Description = string . Format ( "Assembly {0} is not referenced from any cmdlets assembly" ,
301
306
assembly . Name ) ,
302
307
Remediation = string . Format ( "Remove assembly {0} from the project and regenerate the Wix " +
303
308
"file" , assembly . Name )
@@ -317,23 +322,23 @@ private void CheckAssemblyReference(AssemblyName reference, AssemblyRecord paren
317
322
}
318
323
else if ( reference . Version . Major == 0 && reference . Version . Minor == 0 )
319
324
{
320
- Logger . WriteWarning ( "{0}.dll has reference to assembly {1} without any version specification." ,
325
+ Logger . WriteWarning ( "{0}.dll has reference to assembly {1} without any version specification." ,
321
326
parent . Name , reference . Name ) ;
322
327
_versionConflictLogger . LogRecord ( new AssemblyVersionConflict ( )
323
- {
324
- AssemblyName = reference . Name ,
325
- ActualVersion = stored . Version ,
326
- ExpectedVersion = reference . Version ,
327
- ParentAssembly = parent . Name ,
328
- ProblemId = NoAssemblyVersionEvidence ,
329
- Severity = 2 ,
330
- Description = string . Format ( "Assembly {0} referenced from {1}.dll does not specify any " +
328
+ {
329
+ AssemblyName = reference . Name ,
330
+ ActualVersion = stored . Version ,
331
+ ExpectedVersion = reference . Version ,
332
+ ParentAssembly = parent . Name ,
333
+ ProblemId = NoAssemblyVersionEvidence ,
334
+ Severity = 2 ,
335
+ Description = string . Format ( "Assembly {0} referenced from {1}.dll does not specify any " +
331
336
"assembly version evidence. The assembly will use version " +
332
337
"{2} from disk." , reference . Name , parent . Name , stored . Version ) ,
333
- Remediation = string . Format ( "Update the reference to assembly {0} from {1} so that " +
334
- "assembly version evidence is supplied" , reference . Name ,
338
+ Remediation = string . Format ( "Update the reference to assembly {0} from {1} so that " +
339
+ "assembly version evidence is supplied" , reference . Name ,
335
340
parent . Name )
336
- } ) ;
341
+ } ) ;
337
342
}
338
343
else
339
344
{
@@ -347,9 +352,9 @@ private void CheckAssemblyReference(AssemblyName reference, AssemblyRecord paren
347
352
ProblemId = ReferenceDoesNotMatchAssemblyVersion ,
348
353
Severity = 1 ,
349
354
Description = string . Format ( "Assembly {0} version {1} referenced from {2}.dll does " +
350
- "not match assembly version on disk: {3}" ,
355
+ "not match assembly version on disk: {3}" ,
351
356
reference . Name , reference . Version , parent . Name , stored . Version ) ,
352
- Remediation = string . Format ( "Update any references to version {0} of assembly {1}" ,
357
+ Remediation = string . Format ( "Update any references to version {0} of assembly {1}" ,
353
358
minVersion , reference . Name )
354
359
} ) ;
355
360
}
@@ -363,13 +368,13 @@ private void CheckAssemblyReference(AssemblyName reference, AssemblyRecord paren
363
368
ReferencingAssembly = parent . Name ,
364
369
Severity = 0 ,
365
370
ProblemId = MissingAssemblyRecord ,
366
- Description = string . Format ( "Missing assembly {0} referenced from {1}" , reference . Name ,
371
+ Description = string . Format ( "Missing assembly {0} referenced from {1}" , reference . Name ,
367
372
parent . Name ) ,
368
373
Remediation = "Ensure that the assembly is included in the Wix file or directory"
369
374
} ) ;
370
375
}
371
376
}
372
-
377
+
373
378
/// <summary>
374
379
/// These methods will be added in a new work item that has enhancements for Static Analysis tool
375
380
/// </summary>
0 commit comments