Skip to content

Commit 0739443

Browse files
committed
Fixing up assembly references in dependency map
1 parent da99595 commit 0739443

File tree

1 file changed

+32
-27
lines changed

1 file changed

+32
-27
lines changed

tools/StaticAnalysis/DependencyAnalyzer/DependencyAnalyzer.cs

Lines changed: 32 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -143,9 +143,9 @@ private bool AddSharedAssembly(AssemblyRecord assembly)
143143
AssemblyName = assembly.Name,
144144
AssemblyPathsAndFileVersions = new List<Tuple<string, Version>>()
145145
{
146-
new Tuple<string, Version>(assembly.Location, new Version(assembly.AssemblyFileMajorVersion,
146+
new Tuple<string, Version>(assembly.Location, new Version(assembly.AssemblyFileMajorVersion,
147147
assembly.AssemblyFileMinorVersion)),
148-
new Tuple<string, Version>(stored.Location, new Version(stored.AssemblyFileMajorVersion,
148+
new Tuple<string, Version>(stored.Location, new Version(stored.AssemblyFileMajorVersion,
149149
stored.AssemblyFileMinorVersion))
150150

151151
},
@@ -195,9 +195,9 @@ private bool AddSharedAssemblyExactVersion(AssemblyRecord record)
195195
ProblemId = CommonAuthenticationMismatch,
196196
AssemblyPathsAndFileVersions = new List<Tuple<string, Version>>()
197197
{
198-
new Tuple<string, Version>(record.Location, new Version(record.AssemblyFileMajorVersion,
198+
new Tuple<string, Version>(record.Location, new Version(record.AssemblyFileMajorVersion,
199199
record.AssemblyFileMinorVersion)),
200-
new Tuple<string, Version>(stored.Location, new Version(stored.AssemblyFileMajorVersion,
200+
new Tuple<string, Version>(stored.Location, new Version(stored.AssemblyFileMajorVersion,
201201
stored.AssemblyFileMinorVersion)),
202202
},
203203
Description = string.Format("Assembly {0} has multiple versions as specified in 'Target'",
@@ -225,7 +225,7 @@ private static bool RequiresExactVersionMatch(AssemblyRecord name)
225225

226226
private static bool IsFrameworkAssembly(AssemblyName name)
227227
{
228-
return name.Name.StartsWith("System") || name.Name.Equals("mscorlib")
228+
return name.Name.StartsWith("System") || name.Name.Equals("mscorlib")
229229
|| FrameworkAssemblies.Contains(name.Name);
230230
}
231231

@@ -250,6 +250,15 @@ private void ProcessDirectory(string directoryPath)
250250
}
251251

252252
// 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+
253262
foreach (var assembly in _assemblies.Values)
254263
{
255264
foreach (var parent in assembly.ReferencingAssembly)
@@ -265,10 +274,6 @@ private void ProcessDirectory(string directoryPath)
265274
});
266275
}
267276

268-
foreach (var reference in assembly.Children)
269-
{
270-
CheckAssemblyReference(reference, assembly);
271-
}
272277
}
273278

274279
FindExtraAssemblies();
@@ -284,7 +289,7 @@ private static bool IsCommandAssembly(AssemblyRecord assembly)
284289

285290
private void FindExtraAssemblies()
286291
{
287-
if (_assemblies.Values.Any(a => !IsCommandAssembly(a) && (a.ReferencingAssembly == null
292+
if (_assemblies.Values.Any(a => !IsCommandAssembly(a) && (a.ReferencingAssembly == null
288293
|| a.ReferencingAssembly.Count == 0 || !a.GetAncestors().Any(IsCommandAssembly))))
289294
{
290295
foreach (
@@ -297,7 +302,7 @@ var assembly in
297302
AssemblyName = assembly.Name,
298303
Severity = 2,
299304
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",
301306
assembly.Name),
302307
Remediation = string.Format("Remove assembly {0} from the project and regenerate the Wix " +
303308
"file", assembly.Name)
@@ -317,23 +322,23 @@ private void CheckAssemblyReference(AssemblyName reference, AssemblyRecord paren
317322
}
318323
else if (reference.Version.Major == 0 && reference.Version.Minor == 0)
319324
{
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.",
321326
parent.Name, reference.Name);
322327
_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 " +
331336
"assembly version evidence. The assembly will use version " +
332337
"{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,
335340
parent.Name)
336-
});
341+
});
337342
}
338343
else
339344
{
@@ -347,9 +352,9 @@ private void CheckAssemblyReference(AssemblyName reference, AssemblyRecord paren
347352
ProblemId = ReferenceDoesNotMatchAssemblyVersion,
348353
Severity = 1,
349354
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}",
351356
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}",
353358
minVersion, reference.Name)
354359
});
355360
}
@@ -363,13 +368,13 @@ private void CheckAssemblyReference(AssemblyName reference, AssemblyRecord paren
363368
ReferencingAssembly = parent.Name,
364369
Severity = 0,
365370
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,
367372
parent.Name),
368373
Remediation = "Ensure that the assembly is included in the Wix file or directory"
369374
});
370375
}
371376
}
372-
377+
373378
/// <summary>
374379
/// These methods will be added in a new work item that has enhancements for Static Analysis tool
375380
/// </summary>

0 commit comments

Comments
 (0)