diff --git a/AzurePowershell.Test.targets b/AzurePowershell.Test.targets
index a4adcf2014e1..1a0ecf86db9f 100644
--- a/AzurePowershell.Test.targets
+++ b/AzurePowershell.Test.targets
@@ -66,6 +66,7 @@
+
diff --git a/build.proj b/build.proj
index 1de7a0a2ce61..0dff01d87f12 100644
--- a/build.proj
+++ b/build.proj
@@ -137,6 +137,9 @@
+
+
diff --git a/tools/StaticAnalysis/AnalysisLogger.cs b/tools/StaticAnalysis/AnalysisLogger.cs
index f6aa7b493f3e..f1a4eb91f77d 100644
--- a/tools/StaticAnalysis/AnalysisLogger.cs
+++ b/tools/StaticAnalysis/AnalysisLogger.cs
@@ -26,14 +26,27 @@ namespace StaticAnalysis
public abstract class AnalysisLogger
{
string _baseDirectory;
+ string _exceptionsDirectory;
///
/// Create an analysis logger that will write reports to the given directory
///
- ///
+ /// The base directory for reports
+ /// The directory containing exceptions form static analysis rules.
+ public AnalysisLogger(string baseDirectory, string exceptionsDirectory)
+ {
+ _baseDirectory = baseDirectory;
+ _exceptionsDirectory = exceptionsDirectory;
+ }
+
+ ///
+ /// Create an analysis logger without exceptions
+ ///
+ /// The base directory for reports
public AnalysisLogger(string baseDirectory)
{
_baseDirectory = baseDirectory;
+ _exceptionsDirectory = null;
}
IList _loggers = new List();
@@ -86,7 +99,7 @@ public virtual void WriteWarning(string format, params object[] args)
/// The filename (without file path) where the report will be written
/// The given logger. Analyzer may write records to this logger and they will be written to
/// the report file.
- public virtual ReportLogger CreateLogger(string fileName) where T : IReportRecord, new()
+ public virtual ReportLogger CreateLogger(string fileName) where T : class, IReportRecord, new()
{
if (string.IsNullOrWhiteSpace(fileName))
{
@@ -94,7 +107,19 @@ public virtual void WriteWarning(string format, params object[] args)
}
var filePath = Path.Combine(_baseDirectory, fileName);
- var logger = new ReportLogger(filePath, this);
+ ReportLogger logger;
+ if (_exceptionsDirectory != null && Directory.Exists(_exceptionsDirectory))
+ {
+ var exceptionsPath = Path.Combine(_exceptionsDirectory, fileName);
+ WriteWarning("Using exceptions file {0}", exceptionsPath);
+ logger = new ReportLogger(filePath, exceptionsPath, this);
+ }
+ else
+ {
+ WriteWarning("Using no exceptions file.");
+ logger = new ReportLogger(filePath, this);
+ }
+
Loggers.Add(logger);
return logger;
}
@@ -116,5 +141,31 @@ public void WriteReports()
WriteReport(logger.FileName, reportText.ToString());
}
}
+
+ public void CheckForIssues(int maxSeverity)
+ {
+ var hasErrors = false;
+ foreach (var logger in Loggers.Where(l => l.Records.Any(r => r.Severity < maxSeverity)))
+ {
+ hasErrors = true;
+ StringBuilder errorText = new StringBuilder();
+ errorText.AppendLine(logger.Records.First().PrintHeaders());
+ foreach (var reportRecord in logger.Records)
+ {
+ errorText.AppendLine(reportRecord.FormatRecord());
+ }
+
+ WriteError("{0} Errors", logger.FileName);
+ WriteError(errorText.ToString());
+ WriteError("");
+ }
+
+ if (hasErrors)
+ {
+ throw new InvalidOperationException(string.Format("One or more errors occurred in validation. " +
+ "See the analysis repots at {0} for details",
+ _baseDirectory));
+ }
+ }
}
}
diff --git a/tools/StaticAnalysis/ConsoleLogger.cs b/tools/StaticAnalysis/ConsoleLogger.cs
index 1cb18d070d64..22a3b73fa90f 100644
--- a/tools/StaticAnalysis/ConsoleLogger.cs
+++ b/tools/StaticAnalysis/ConsoleLogger.cs
@@ -23,11 +23,15 @@ namespace StaticAnalysis
public class ConsoleLogger : AnalysisLogger
{
+ public ConsoleLogger(string baseDirectory, string exceptionsDirectory)
+ : base(baseDirectory, exceptionsDirectory)
+ {
+ }
+
public ConsoleLogger(string baseDirectory)
: base(baseDirectory)
{
}
-
public override void WriteError(string error)
{
Console.WriteLine("### ERROR {0}", error);
diff --git a/tools/StaticAnalysis/DependencyAnalyzer/AssemblyRecord.cs b/tools/StaticAnalysis/DependencyAnalyzer/AssemblyRecord.cs
index a6a0c41e9e53..90e04d3adcd6 100644
--- a/tools/StaticAnalysis/DependencyAnalyzer/AssemblyRecord.cs
+++ b/tools/StaticAnalysis/DependencyAnalyzer/AssemblyRecord.cs
@@ -114,6 +114,12 @@ public override string ToString()
}
+ public override int GetHashCode()
+ {
+ return string.Format("{0}-{1}-{2}", AssemblyName, AssemblyFileMajorVersion, AssemblyFileMinorVersion).GetHashCode();
+ }
+
+
///
/// Get all the ancestors in the ancestor tree
///
diff --git a/tools/StaticAnalysis/DependencyAnalyzer/AssemblyVersionConflict.cs b/tools/StaticAnalysis/DependencyAnalyzer/AssemblyVersionConflict.cs
index 7c54d20f5571..b2750f981c42 100644
--- a/tools/StaticAnalysis/DependencyAnalyzer/AssemblyVersionConflict.cs
+++ b/tools/StaticAnalysis/DependencyAnalyzer/AssemblyVersionConflict.cs
@@ -13,6 +13,8 @@
// ----------------------------------------------------------------------------------
using System;
+using System.IO;
+using System.Text.RegularExpressions;
namespace StaticAnalysis.DependencyAnalyzer
{
@@ -46,6 +48,11 @@ public class AssemblyVersionConflict : IReportRecord
///
public string ParentAssembly { get; set; }
+ ///
+ /// Machine readable identity of the problem
+ ///
+ public int ProblemId { get; set; }
+
///
/// A textual description of the problem
///
@@ -62,16 +69,52 @@ public string PrintHeaders()
{
return
"\"Directory\",\"AssemblyName\",\"Expected Version\",\"Actual Version\",\"Parent Assembly\",\"Severity\"," +
- "\"Description\",\"Remediation\"";
+ "\"ProblemId\",\"Description\",\"Remediation\"";
}
public string FormatRecord()
{
return
string.Format(
- "\"{0}\",\"{1}\",\"{2}\",\"{3}\",\"{4}\",\"{5}\",\"{6}\",\"{7}\"",
+ "\"{0}\",\"{1}\",\"{2}\",\"{3}\",\"{4}\",\"{5}\",\"{6}\",\"{7}\",\"{8}\"",
Directory, AssemblyName, ExpectedVersion, ActualVersion, ParentAssembly, Severity,
- Description, Remediation);
+ ProblemId, Description, Remediation);
+ }
+ public bool Match(IReportRecord other)
+ {
+ var result = false;
+ var record = other as AssemblyVersionConflict;
+ if (record != null)
+ {
+ result = string.Equals(EnvironmentHelpers.GetDirectoryName(record.Directory),
+ EnvironmentHelpers.GetDirectoryName(Directory), StringComparison.OrdinalIgnoreCase)
+ && string.Equals(record.AssemblyName, AssemblyName, StringComparison.OrdinalIgnoreCase)
+ && string.Equals(record.ParentAssembly, ParentAssembly, StringComparison.OrdinalIgnoreCase)
+ &&record.ProblemId == ProblemId;
+ }
+
+ return result;
+ }
+
+ public IReportRecord Parse(string line)
+ {
+ var matcher = "\"([^\"]+)\",\"([^\"]+)\",\"([^\"]+)\",\"([^\"]+)\",\"([^\"]+)\",\"([^\"]+)\",\"([^\"]+)\",\"([^\"]+)\",\"([^\"]+)\"";
+ var match = Regex.Match(line, matcher);
+ if (!match.Success || match.Groups.Count < 10)
+ {
+ throw new InvalidOperationException(string.Format("Could not parse '{0}' as AssemblyVersionConflict record", line));
+ }
+
+ Directory = match.Groups[1].Value;
+ AssemblyName = match.Groups[2].Value;
+ ExpectedVersion = Version.Parse(match.Groups[3].Value);
+ ActualVersion = Version.Parse(match.Groups[4].Value);
+ ParentAssembly = match.Groups[5].Value;
+ Severity = int.Parse(match.Groups[6].Value);
+ ProblemId = int.Parse(match.Groups[7].Value);
+ Description = match.Groups[8].Value;
+ Remediation = match.Groups[9].Value;
+ return this;
}
public override string ToString()
diff --git a/tools/StaticAnalysis/DependencyAnalyzer/DependencyAnalyzer.cs b/tools/StaticAnalysis/DependencyAnalyzer/DependencyAnalyzer.cs
index 62f8ee2786ff..b79bec67f05b 100644
--- a/tools/StaticAnalysis/DependencyAnalyzer/DependencyAnalyzer.cs
+++ b/tools/StaticAnalysis/DependencyAnalyzer/DependencyAnalyzer.cs
@@ -13,6 +13,7 @@
// ----------------------------------------------------------------------------------
using System;
+using System.CodeDom;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
@@ -26,6 +27,21 @@ namespace StaticAnalysis.DependencyAnalyzer
///
public class DependencyAnalyzer : IStaticAnalyzer
{
+ const int NoAssemblyVersionEvidence = 1000;
+ const int ReferenceDoesNotMatchAssemblyVersion = 1010;
+ const int ExtraAssemblyRecord = 2000;
+ const int MissingAssemblyRecord = 3000;
+ const int AssemblyVersionFileVersionMismatch = 7000;
+ const int CommonAuthenticationMismatch = 7010;
+
+ static List FrameworkAssemblies = new List
+ {
+ "Microsoft.CSharp",
+ "Microsoft.Management.Infrastructure",
+ "Microsoft.Build",
+ "Microsoft.Build.Framework"
+ };
+
private Dictionary _assemblies =
new Dictionary(StringComparer.OrdinalIgnoreCase);
private Dictionary _sharedAssemblyReferences =
@@ -130,6 +146,7 @@ private bool AddSharedAssembly(AssemblyRecord assembly)
},
AssemblyVersion = assembly.Version,
Severity = 0,
+ ProblemId = AssemblyVersionFileVersionMismatch,
Description = "Shared assembly conflict, shared assemblies with the same assembly " +
"version have differing file versions",
Remediation = string.Format("Update the assembly reference for {0} in one of the " +
@@ -170,6 +187,7 @@ private bool AddSharedAssemblyExactVersion(AssemblyRecord record)
AssemblyName = record.Name,
AssemblyVersion = record.Version,
Severity = 0,
+ ProblemId = CommonAuthenticationMismatch,
AssemblyPathsAndFileVersions = new List>()
{
new Tuple(record.Location, new Version(record.AssemblyFileMajorVersion,
@@ -202,14 +220,15 @@ private static bool RequiresExactVersionMatch(AssemblyRecord name)
private static bool IsFrameworkAssembly(AssemblyName name)
{
- return name.Name.StartsWith("System") || name.Name.Equals("mscorlib");
+ return name.Name.StartsWith("System") || name.Name.Equals("mscorlib")
+ || FrameworkAssemblies.Contains(name.Name);
}
private void ProcessDirectory(string directoryPath)
{
var savedDirectory = Directory.GetCurrentDirectory();
Directory.SetCurrentDirectory(directoryPath);
- _loader = AppDomainHelpers.CreateProxy(directoryPath, out _testDomain);
+ _loader = EnvironmentHelpers.CreateProxy(directoryPath, out _testDomain);
foreach (var file in Directory.GetFiles(directoryPath).Where(file => file.EndsWith(".dll")))
{
AssemblyRecord assembly = CreateAssemblyRecord(file);
@@ -258,6 +277,7 @@ var assembly in
{
AssemblyName = assembly.Name,
Severity = 2,
+ ProblemId = ExtraAssemblyRecord,
Description = string.Format("Assembly {0} is not referenced from any cmdlets assembly",
assembly.Name),
Remediation = string.Format("Remove assembly {0} from the project and regenerate the Wix " +
@@ -286,6 +306,7 @@ private void CheckAssemblyReference(AssemblyName reference, AssemblyRecord paren
ActualVersion = stored.Version,
ExpectedVersion = reference.Version,
ParentAssembly = parent.Name,
+ ProblemId = NoAssemblyVersionEvidence,
Severity = 2,
Description = string.Format("Assembly {0} referenced from {1}.dll does not specify any " +
"assembly version evidence. The assembly will use version " +
@@ -304,6 +325,7 @@ private void CheckAssemblyReference(AssemblyName reference, AssemblyRecord paren
ActualVersion = stored.Version,
ExpectedVersion = reference.Version,
ParentAssembly = parent.Name,
+ ProblemId = ReferenceDoesNotMatchAssemblyVersion,
Severity = 1,
Description = string.Format("Assembly {0} version {1} referenced from {2}.dll does " +
"not match assembly version on disk: {3}",
@@ -321,6 +343,7 @@ private void CheckAssemblyReference(AssemblyName reference, AssemblyRecord paren
AssemblyVersion = reference.Version.ToString(),
ReferencingAssembly = parent.Name,
Severity = 0,
+ ProblemId = MissingAssemblyRecord,
Description = string.Format("Missing assembly {0} referenced from {1}", reference.Name,
parent.Name),
Remediation = "Ensure that the assembly is included in the Wix file or directory"
diff --git a/tools/StaticAnalysis/DependencyAnalyzer/ExtraAssembly.cs b/tools/StaticAnalysis/DependencyAnalyzer/ExtraAssembly.cs
index 677bb9271054..5b0a4b07b14b 100644
--- a/tools/StaticAnalysis/DependencyAnalyzer/ExtraAssembly.cs
+++ b/tools/StaticAnalysis/DependencyAnalyzer/ExtraAssembly.cs
@@ -12,6 +12,9 @@
// limitations under the License.
// ----------------------------------------------------------------------------------
+using System;
+using System.Text.RegularExpressions;
+
namespace StaticAnalysis.DependencyAnalyzer
{
///
@@ -25,6 +28,8 @@ public class ExtraAssembly : IReportRecord
public int Severity { get; set; }
+ public int ProblemId { get; set; }
+
public string Description { get; set; }
public string Remediation { get; set; }
@@ -32,18 +37,52 @@ public class ExtraAssembly : IReportRecord
public string PrintHeaders()
{
- return "\"Directory\",\"AssemblyName\",\"Severity\",\"Description\",\"Remediation\"";
+ return "\"Directory\",\"AssemblyName\",\"Severity\",\"ProblemId\",\"Description\",\"Remediation\"";
}
public string FormatRecord()
{
- return string.Format("\"{0}\",\"{1}\",\"{2}\",\"{3}\",\"{4}\"",
- Directory, AssemblyName, Severity, Description, Remediation);
+ return string.Format("\"{0}\",\"{1}\",\"{2}\",\"{3}\",\"{4}\",\"{5}\"",
+ Directory, AssemblyName, Severity, ProblemId, Description, Remediation);
}
public override string ToString()
{
return FormatRecord();
}
+
+
+ public bool Match(IReportRecord other)
+ {
+ var result = false;
+ var record = other as ExtraAssembly;
+ if (record != null)
+ {
+ result = string.Equals(EnvironmentHelpers.GetDirectoryName(record.Directory),
+ EnvironmentHelpers.GetDirectoryName(Directory), StringComparison.OrdinalIgnoreCase)
+ && string.Equals(record.AssemblyName, AssemblyName, StringComparison.OrdinalIgnoreCase)
+ && record.ProblemId == ProblemId;
+ }
+
+ return result;
+ }
+
+ public IReportRecord Parse(string line)
+ {
+ var matcher = "\"([^\"]+)\",\"([^\"]+)\",\"([^\"]+)\",\"([^\"]+)\",\"([^\"]+)\",\"([^\"]+)\"";
+ var match = Regex.Match(line, matcher);
+ if (!match.Success || match.Groups.Count < 7)
+ {
+ throw new InvalidOperationException(string.Format("Could not parse '{0}' as ExtraAssembly record", line));
+ }
+
+ Directory = match.Groups[1].Value;
+ AssemblyName = match.Groups[2].Value;
+ Severity = int.Parse(match.Groups[3].Value);
+ ProblemId = int.Parse(match.Groups[4].Value);
+ Description = match.Groups[5].Value;
+ Remediation = match.Groups[6].Value;
+ return this;
+ }
}
}
diff --git a/tools/StaticAnalysis/DependencyAnalyzer/MissingAssembly.cs b/tools/StaticAnalysis/DependencyAnalyzer/MissingAssembly.cs
index ea73fd482404..89b4a8000970 100644
--- a/tools/StaticAnalysis/DependencyAnalyzer/MissingAssembly.cs
+++ b/tools/StaticAnalysis/DependencyAnalyzer/MissingAssembly.cs
@@ -12,6 +12,9 @@
// limitations under the License.
// ----------------------------------------------------------------------------------
+using System;
+using System.Text.RegularExpressions;
+
namespace StaticAnalysis.DependencyAnalyzer
{
///
@@ -23,6 +26,7 @@ public class MissingAssembly : IReportRecord
public string AssemblyName { get; set; }
public string AssemblyVersion { get; set; }
public string ReferencingAssembly { get; set; }
+ public int ProblemId { get; set; }
public string Description { get; set; }
public string Remediation { get; set; }
public int Severity { get; set; }
@@ -30,14 +34,51 @@ public class MissingAssembly : IReportRecord
public string PrintHeaders()
{
return "\"Directory\",\"Assembly Name\",\"Assembly Version\",\"Referencing Assembly\"," +
- "\"Severity\",\"Description\",\"Remediation\"";
+ "\"Severity\",\"ProblemId\",\"Description\",\"Remediation\"";
}
public string FormatRecord()
{
- return string.Format("\"{0}\",\"{1}\",\"{2}\",\"{3}\",\"{4}\",\"{5}\",\"{6}\"",
+ return string.Format("\"{0}\",\"{1}\",\"{2}\",\"{3}\",\"{4}\",\"{5}\",\"{6}\",\"{7}\"",
Directory, AssemblyName, AssemblyVersion, ReferencingAssembly,
- Severity, Description, Remediation);
+ Severity, ProblemId, Description, Remediation);
+ }
+
+ public bool Match(IReportRecord other)
+ {
+ var result = false;
+ var record = other as MissingAssembly;
+ if (record != null)
+ {
+ result = string.Equals(EnvironmentHelpers.GetDirectoryName(record.Directory),
+ EnvironmentHelpers.GetDirectoryName(Directory), StringComparison.OrdinalIgnoreCase)
+ && string.Equals(record.AssemblyName, AssemblyName, StringComparison.OrdinalIgnoreCase)
+ && string.Equals(record.AssemblyVersion, AssemblyVersion, StringComparison.OrdinalIgnoreCase)
+ && string.Equals(record.ReferencingAssembly, ReferencingAssembly, StringComparison.OrdinalIgnoreCase)
+ && record.ProblemId == ProblemId;
+ }
+
+ return result;
+ }
+
+ public IReportRecord Parse(string line)
+ {
+ var matcher = "\"([^\"]+)\",\"([^\"]+)\",\"([^\"]+)\",\"([^\"]+)\",\"([^\"]+)\",\"([^\"]+)\",\"([^\"]+)\",\"([^\"]+)\"";
+ var match = Regex.Match(line, matcher);
+ if (!match.Success || match.Groups.Count < 9)
+ {
+ throw new InvalidOperationException(string.Format("Could not parse '{0}' as MissingAssembly record", line));
+ }
+
+ Directory = match.Groups[1].Value;
+ AssemblyName = match.Groups[2].Value;
+ AssemblyVersion = match.Groups[3].Value;
+ ReferencingAssembly = match.Groups[4].Value;
+ Severity = int.Parse(match.Groups[5].Value);
+ ProblemId = int.Parse(match.Groups[6].Value);
+ Description = match.Groups[7].Value;
+ Remediation = match.Groups[8].Value;
+ return this;
}
public override string ToString()
diff --git a/tools/StaticAnalysis/DependencyAnalyzer/SharedAssemblyConflict.cs b/tools/StaticAnalysis/DependencyAnalyzer/SharedAssemblyConflict.cs
index f2b8b0b9b4e6..fe13e2ceeb86 100644
--- a/tools/StaticAnalysis/DependencyAnalyzer/SharedAssemblyConflict.cs
+++ b/tools/StaticAnalysis/DependencyAnalyzer/SharedAssemblyConflict.cs
@@ -14,7 +14,9 @@
using System;
using System.Collections.Generic;
+using System.IO;
using System.Linq;
+using System.Text.RegularExpressions;
namespace StaticAnalysis.DependencyAnalyzer
{
@@ -27,13 +29,14 @@ public class SharedAssemblyConflict : IReportRecord
public string AssemblyName { get; set; }
public Version AssemblyVersion { get; set; }
public List> AssemblyPathsAndFileVersions { get; set; }
+ public int ProblemId { get; set; }
public string Description { get; set; }
public string Remediation { get; set; }
public int Severity { get; set; }
public string PrintHeaders()
{
- return "\"Target\",\"AssemblyName\",\"AssemblyVersion\",\"Severity\",\"Description\",\"Remediation\"";
+ return "\"Target\",\"AssemblyName\",\"AssemblyVersion\",\"Severity\",\"ProblemId\",\"Description\",\"Remediation\"";
}
public string FormatRecord()
@@ -41,8 +44,40 @@ public string FormatRecord()
var targets =
AssemblyPathsAndFileVersions.Select(s => string.Format("File version {0} in {1}", s.Item2, s.Item1));
var targetString = string.Join(", ", targets);
- return string.Format("\"{0}\",\"{1}\",\"{2}\",\"{3}\",\"{4}\",\"{5}\"", targetString, AssemblyName,
- AssemblyVersion, Severity, Description, Remediation);
+ return string.Format("\"{0}\",\"{1}\",\"{2}\",\"{3}\",\"{4}\",\"{5}\",\"{6}\"", targetString, AssemblyName,
+ AssemblyVersion, Severity, ProblemId, Description, Remediation);
+ }
+
+ public bool Match(IReportRecord other)
+ {
+ var result = false;
+ var record = other as SharedAssemblyConflict;
+ if (record != null)
+ {
+ result = string.Equals(record.AssemblyName, AssemblyName, StringComparison.OrdinalIgnoreCase) &&
+ record.AssemblyVersion == AssemblyVersion &&
+ record.ProblemId == ProblemId;
+ }
+
+ return result;
+ }
+
+ public IReportRecord Parse(string line)
+ {
+ var matcher = "\"([^\"]+)\",\"([^\"]+)\",\"([^\"]+)\",\"([^\"]+)\",\"([^\"]+)\",\"([^\"]+)\",\"([^\"]+)\"";
+ var match = Regex.Match(line, matcher);
+ if (!match.Success || match.Groups.Count < 8)
+ {
+ throw new InvalidOperationException(string.Format("Could not parse '{0}' as SharedAssemblyConflict record", line));
+ }
+
+ AssemblyName = match.Groups[2].Value;
+ AssemblyVersion = Version.Parse(match.Groups[3].Value);
+ Severity = int.Parse(match.Groups[4].Value);
+ ProblemId = int.Parse(match.Groups[5].Value);
+ Description = match.Groups[6].Value;
+ Remediation = match.Groups[7].Value;
+ return this;
}
public override string ToString()
diff --git a/tools/StaticAnalysis/AppDomainHelpers.cs b/tools/StaticAnalysis/EnvironmentHelpers.cs
similarity index 73%
rename from tools/StaticAnalysis/AppDomainHelpers.cs
rename to tools/StaticAnalysis/EnvironmentHelpers.cs
index cdf32c4cc754..576301c67b38 100644
--- a/tools/StaticAnalysis/AppDomainHelpers.cs
+++ b/tools/StaticAnalysis/EnvironmentHelpers.cs
@@ -16,7 +16,7 @@
namespace StaticAnalysis
{
- public static class AppDomainHelpers
+ public static class EnvironmentHelpers
{
///
/// Create a new AppDomain and create a remote instance of AssemblyLoader we can use there
@@ -26,7 +26,7 @@ public static class AppDomainHelpers
/// A proxy to the AssemblyLoader running in the newly created app domain
public static T CreateProxy(string directoryPath, out AppDomain testDomain) where T:MarshalByRefObject
{
- if (string.IsNullOrWhiteSpace(directoryPath))
+ if (String.IsNullOrWhiteSpace(directoryPath))
{
throw new ArgumentException("directoryPath");
}
@@ -43,5 +43,27 @@ public static T CreateProxy(string directoryPath, out AppDomain testDomain) w
return testDomain.CreateInstanceFromAndUnwrap(typeof(T).Assembly.Location,
typeof(T).FullName) as T;
}
+
+ ///
+ /// Get the name of the directory from a directory path
+ ///
+ /// A directory path
+ /// The name of the directory
+ public static string GetDirectoryName(string path)
+ {
+ if (path == null)
+ {
+ throw new ArgumentNullException("path");
+ }
+
+ string result = path.TrimEnd('\\');
+ var lastSlash = result.LastIndexOf("\\");
+ if (lastSlash > 0)
+ {
+ result = result.Substring(lastSlash + 1);
+ }
+
+ return result;
+ }
}
}
diff --git a/tools/StaticAnalysis/Exceptions/AssemblyVersionConflict.csv b/tools/StaticAnalysis/Exceptions/AssemblyVersionConflict.csv
new file mode 100644
index 000000000000..a31380397327
--- /dev/null
+++ b/tools/StaticAnalysis/Exceptions/AssemblyVersionConflict.csv
@@ -0,0 +1,5 @@
+"Directory","AssemblyName","Expected Version","Actual Version","Parent Assembly","Severity","ProblemId","Description","Remediation"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Batch","Microsoft.Data.OData","5.6.2.0","5.6.4.0","Microsoft.Azure.Batch","1","1010","Assembly Microsoft.Data.OData version 5.6.2.0 referenced from Microsoft.Azure.Batch.dll does not match assembly version on disk: 5.6.4.0","Update any references to version 5.6.2.0 of assembly Microsoft.Data.OData"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Batch","Microsoft.WindowsAzure.Storage","4.3.0.0","6.1.0.0","Microsoft.Azure.Batch","1","1010","Assembly Microsoft.WindowsAzure.Storage version 4.3.0.0 referenced from Microsoft.Azure.Batch.dll does not match assembly version on disk: 6.1.0.0","Update any references to version 4.3.0.0 of assembly Microsoft.WindowsAzure.Storage"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.RedisCache","Microsoft.WindowsAzure.Storage","6.0.0.0","6.1.0.0","Microsoft.Azure.Insights","1","1010","Assembly Microsoft.WindowsAzure.Storage version 6.0.0.0 referenced from Microsoft.Azure.Insights.dll does not match assembly version on disk: 6.1.0.0","Update any references to version 6.0.0.0 of assembly Microsoft.WindowsAzure.Storage"
+"src\Package\Debug\ServiceManagement\Azure\HDInsight","Microsoft.WindowsAzure.Storage","3.0.3.0","6.0.0.0","Microsoft.Hadoop.Client","1","1010","Assembly Microsoft.WindowsAzure.Storage version 3.0.3.0 referenced from Microsoft.Hadoop.Client.dll does not match assembly version on disk: 6.0.0.0","Update any references to version 3.0.3.0 of assembly Microsoft.WindowsAzure.Storage"
diff --git a/tools/StaticAnalysis/Exceptions/ExtraAssemblies.csv b/tools/StaticAnalysis/Exceptions/ExtraAssemblies.csv
new file mode 100644
index 000000000000..34242053b703
--- /dev/null
+++ b/tools/StaticAnalysis/Exceptions/ExtraAssemblies.csv
@@ -0,0 +1,266 @@
+"Directory","AssemblyName","Severity","ProblemId","Description","Remediation"
+"src\Package\Debug\ResourceManager\AzureResourceManager\Azure.Storage","Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms","2","2000","Assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms is not referenced from any cmdlets assembly","Remove assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\Azure.Storage","Microsoft.Threading.Tasks.Extensions.Desktop","2","2000","Assembly Microsoft.Threading.Tasks.Extensions.Desktop is not referenced from any cmdlets assembly","Remove assembly Microsoft.Threading.Tasks.Extensions.Desktop from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\Azure.Storage","Microsoft.Threading.Tasks.Extensions","2","2000","Assembly Microsoft.Threading.Tasks.Extensions is not referenced from any cmdlets assembly","Remove assembly Microsoft.Threading.Tasks.Extensions from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\Azure.Storage","System.Net.Http.Extensions","2","2000","Assembly System.Net.Http.Extensions is not referenced from any cmdlets assembly","Remove assembly System.Net.Http.Extensions from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\Azure.Storage","System.Net.Http.Primitives","2","2000","Assembly System.Net.Http.Primitives is not referenced from any cmdlets assembly","Remove assembly System.Net.Http.Primitives from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.ApiManagement","AutoMapper.Net4","2","2000","Assembly AutoMapper.Net4 is not referenced from any cmdlets assembly","Remove assembly AutoMapper.Net4 from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.ApiManagement","Microsoft.Azure.ResourceManager","2","2000","Assembly Microsoft.Azure.ResourceManager is not referenced from any cmdlets assembly","Remove assembly Microsoft.Azure.ResourceManager from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.ApiManagement","Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms","2","2000","Assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms is not referenced from any cmdlets assembly","Remove assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.ApiManagement","Microsoft.Threading.Tasks.Extensions.Desktop","2","2000","Assembly Microsoft.Threading.Tasks.Extensions.Desktop is not referenced from any cmdlets assembly","Remove assembly Microsoft.Threading.Tasks.Extensions.Desktop from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.ApiManagement","Microsoft.Threading.Tasks.Extensions","2","2000","Assembly Microsoft.Threading.Tasks.Extensions is not referenced from any cmdlets assembly","Remove assembly Microsoft.Threading.Tasks.Extensions from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.ApiManagement","Microsoft.WindowsAzure.Management","2","2000","Assembly Microsoft.WindowsAzure.Management is not referenced from any cmdlets assembly","Remove assembly Microsoft.WindowsAzure.Management from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.ApiManagement","System.Net.Http.Extensions","2","2000","Assembly System.Net.Http.Extensions is not referenced from any cmdlets assembly","Remove assembly System.Net.Http.Extensions from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.ApiManagement","System.Net.Http.Primitives","2","2000","Assembly System.Net.Http.Primitives is not referenced from any cmdlets assembly","Remove assembly System.Net.Http.Primitives from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Automation","Microsoft.Azure.ResourceManager","2","2000","Assembly Microsoft.Azure.ResourceManager is not referenced from any cmdlets assembly","Remove assembly Microsoft.Azure.ResourceManager from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Automation","Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms","2","2000","Assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms is not referenced from any cmdlets assembly","Remove assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Automation","Microsoft.Threading.Tasks.Extensions.Desktop","2","2000","Assembly Microsoft.Threading.Tasks.Extensions.Desktop is not referenced from any cmdlets assembly","Remove assembly Microsoft.Threading.Tasks.Extensions.Desktop from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Automation","Microsoft.Threading.Tasks.Extensions","2","2000","Assembly Microsoft.Threading.Tasks.Extensions is not referenced from any cmdlets assembly","Remove assembly Microsoft.Threading.Tasks.Extensions from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Automation","System.Net.Http.Extensions","2","2000","Assembly System.Net.Http.Extensions is not referenced from any cmdlets assembly","Remove assembly System.Net.Http.Extensions from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Automation","System.Net.Http.Primitives","2","2000","Assembly System.Net.Http.Primitives is not referenced from any cmdlets assembly","Remove assembly System.Net.Http.Primitives from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.AzureStackAdmin","Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms","2","2000","Assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms is not referenced from any cmdlets assembly","Remove assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.AzureStackAdmin","System.Net.Http.Extensions","2","2000","Assembly System.Net.Http.Extensions is not referenced from any cmdlets assembly","Remove assembly System.Net.Http.Extensions from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.AzureStackAdmin","System.Net.Http.Primitives","2","2000","Assembly System.Net.Http.Primitives is not referenced from any cmdlets assembly","Remove assembly System.Net.Http.Primitives from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.AzureStackStorage","Microsoft.Azure.ResourceManager","2","2000","Assembly Microsoft.Azure.ResourceManager is not referenced from any cmdlets assembly","Remove assembly Microsoft.Azure.ResourceManager from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.AzureStackStorage","Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms","2","2000","Assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms is not referenced from any cmdlets assembly","Remove assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.AzureStackStorage","Microsoft.WindowsAzure.Configuration","2","2000","Assembly Microsoft.WindowsAzure.Configuration is not referenced from any cmdlets assembly","Remove assembly Microsoft.WindowsAzure.Configuration from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Backup","Microsoft.Azure.ResourceManager","2","2000","Assembly Microsoft.Azure.ResourceManager is not referenced from any cmdlets assembly","Remove assembly Microsoft.Azure.ResourceManager from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Backup","Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms","2","2000","Assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms is not referenced from any cmdlets assembly","Remove assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Backup","Microsoft.Threading.Tasks.Extensions.Desktop","2","2000","Assembly Microsoft.Threading.Tasks.Extensions.Desktop is not referenced from any cmdlets assembly","Remove assembly Microsoft.Threading.Tasks.Extensions.Desktop from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Backup","Microsoft.Threading.Tasks.Extensions","2","2000","Assembly Microsoft.Threading.Tasks.Extensions is not referenced from any cmdlets assembly","Remove assembly Microsoft.Threading.Tasks.Extensions from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Backup","Microsoft.WindowsAzure.Management","2","2000","Assembly Microsoft.WindowsAzure.Management is not referenced from any cmdlets assembly","Remove assembly Microsoft.WindowsAzure.Management from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Backup","System.Net.Http.Extensions","2","2000","Assembly System.Net.Http.Extensions is not referenced from any cmdlets assembly","Remove assembly System.Net.Http.Extensions from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Backup","System.Net.Http.Primitives","2","2000","Assembly System.Net.Http.Primitives is not referenced from any cmdlets assembly","Remove assembly System.Net.Http.Primitives from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Batch","Microsoft.Azure.KeyVault.Core","2","2000","Assembly Microsoft.Azure.KeyVault.Core is not referenced from any cmdlets assembly","Remove assembly Microsoft.Azure.KeyVault.Core from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Batch","Microsoft.Data.Edm","2","2000","Assembly Microsoft.Data.Edm is not referenced from any cmdlets assembly","Remove assembly Microsoft.Data.Edm from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Batch","Microsoft.Data.OData","2","2000","Assembly Microsoft.Data.OData is not referenced from any cmdlets assembly","Remove assembly Microsoft.Data.OData from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Batch","Microsoft.Data.Services.Client","2","2000","Assembly Microsoft.Data.Services.Client is not referenced from any cmdlets assembly","Remove assembly Microsoft.Data.Services.Client from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Batch","Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms","2","2000","Assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms is not referenced from any cmdlets assembly","Remove assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Batch","Microsoft.Threading.Tasks.Extensions.Desktop","2","2000","Assembly Microsoft.Threading.Tasks.Extensions.Desktop is not referenced from any cmdlets assembly","Remove assembly Microsoft.Threading.Tasks.Extensions.Desktop from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Batch","Microsoft.Threading.Tasks.Extensions","2","2000","Assembly Microsoft.Threading.Tasks.Extensions is not referenced from any cmdlets assembly","Remove assembly Microsoft.Threading.Tasks.Extensions from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Batch","Microsoft.WindowsAzure.Management","2","2000","Assembly Microsoft.WindowsAzure.Management is not referenced from any cmdlets assembly","Remove assembly Microsoft.WindowsAzure.Management from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Batch","Microsoft.WindowsAzure.Storage","2","2000","Assembly Microsoft.WindowsAzure.Storage is not referenced from any cmdlets assembly","Remove assembly Microsoft.WindowsAzure.Storage from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Batch","System.Net.Http.Extensions","2","2000","Assembly System.Net.Http.Extensions is not referenced from any cmdlets assembly","Remove assembly System.Net.Http.Extensions from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Batch","System.Net.Http.Primitives","2","2000","Assembly System.Net.Http.Primitives is not referenced from any cmdlets assembly","Remove assembly System.Net.Http.Primitives from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Batch","System.Spatial","2","2000","Assembly System.Spatial is not referenced from any cmdlets assembly","Remove assembly System.Spatial from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Compute","Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms","2","2000","Assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms is not referenced from any cmdlets assembly","Remove assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Compute","Microsoft.Threading.Tasks.Extensions.Desktop","2","2000","Assembly Microsoft.Threading.Tasks.Extensions.Desktop is not referenced from any cmdlets assembly","Remove assembly Microsoft.Threading.Tasks.Extensions.Desktop from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Compute","Microsoft.Threading.Tasks.Extensions","2","2000","Assembly Microsoft.Threading.Tasks.Extensions is not referenced from any cmdlets assembly","Remove assembly Microsoft.Threading.Tasks.Extensions from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Compute","System.Net.Http.Extensions","2","2000","Assembly System.Net.Http.Extensions is not referenced from any cmdlets assembly","Remove assembly System.Net.Http.Extensions from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Compute","System.Net.Http.Primitives","2","2000","Assembly System.Net.Http.Primitives is not referenced from any cmdlets assembly","Remove assembly System.Net.Http.Primitives from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.DataFactories","Microsoft.Azure.ResourceManager","2","2000","Assembly Microsoft.Azure.ResourceManager is not referenced from any cmdlets assembly","Remove assembly Microsoft.Azure.ResourceManager from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.DataFactories","Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms","2","2000","Assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms is not referenced from any cmdlets assembly","Remove assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.DataFactories","Microsoft.Threading.Tasks.Extensions.Desktop","2","2000","Assembly Microsoft.Threading.Tasks.Extensions.Desktop is not referenced from any cmdlets assembly","Remove assembly Microsoft.Threading.Tasks.Extensions.Desktop from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.DataFactories","Microsoft.Threading.Tasks.Extensions","2","2000","Assembly Microsoft.Threading.Tasks.Extensions is not referenced from any cmdlets assembly","Remove assembly Microsoft.Threading.Tasks.Extensions from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.DataFactories","Microsoft.WindowsAzure.Management","2","2000","Assembly Microsoft.WindowsAzure.Management is not referenced from any cmdlets assembly","Remove assembly Microsoft.WindowsAzure.Management from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.DataFactories","System.Net.Http.Extensions","2","2000","Assembly System.Net.Http.Extensions is not referenced from any cmdlets assembly","Remove assembly System.Net.Http.Extensions from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.DataFactories","System.Net.Http.Primitives","2","2000","Assembly System.Net.Http.Primitives is not referenced from any cmdlets assembly","Remove assembly System.Net.Http.Primitives from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.DataLakeAnalytics","Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms","2","2000","Assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms is not referenced from any cmdlets assembly","Remove assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.DataLakeAnalytics","Microsoft.Threading.Tasks.Extensions.Desktop","2","2000","Assembly Microsoft.Threading.Tasks.Extensions.Desktop is not referenced from any cmdlets assembly","Remove assembly Microsoft.Threading.Tasks.Extensions.Desktop from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.DataLakeAnalytics","Microsoft.Threading.Tasks.Extensions","2","2000","Assembly Microsoft.Threading.Tasks.Extensions is not referenced from any cmdlets assembly","Remove assembly Microsoft.Threading.Tasks.Extensions from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.DataLakeAnalytics","Microsoft.WindowsAzure.Management","2","2000","Assembly Microsoft.WindowsAzure.Management is not referenced from any cmdlets assembly","Remove assembly Microsoft.WindowsAzure.Management from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.DataLakeAnalytics","System.Net.Http.Extensions","2","2000","Assembly System.Net.Http.Extensions is not referenced from any cmdlets assembly","Remove assembly System.Net.Http.Extensions from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.DataLakeAnalytics","System.Net.Http.Primitives","2","2000","Assembly System.Net.Http.Primitives is not referenced from any cmdlets assembly","Remove assembly System.Net.Http.Primitives from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.DataLakeStore","Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms","2","2000","Assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms is not referenced from any cmdlets assembly","Remove assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.DataLakeStore","Microsoft.Threading.Tasks.Extensions.Desktop","2","2000","Assembly Microsoft.Threading.Tasks.Extensions.Desktop is not referenced from any cmdlets assembly","Remove assembly Microsoft.Threading.Tasks.Extensions.Desktop from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.DataLakeStore","Microsoft.Threading.Tasks.Extensions","2","2000","Assembly Microsoft.Threading.Tasks.Extensions is not referenced from any cmdlets assembly","Remove assembly Microsoft.Threading.Tasks.Extensions from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.DataLakeStore","Microsoft.WindowsAzure.Management","2","2000","Assembly Microsoft.WindowsAzure.Management is not referenced from any cmdlets assembly","Remove assembly Microsoft.WindowsAzure.Management from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.DataLakeStore","System.Net.Http.Extensions","2","2000","Assembly System.Net.Http.Extensions is not referenced from any cmdlets assembly","Remove assembly System.Net.Http.Extensions from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.DataLakeStore","System.Net.Http.Primitives","2","2000","Assembly System.Net.Http.Primitives is not referenced from any cmdlets assembly","Remove assembly System.Net.Http.Primitives from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Dns","Microsoft.Azure.Management.Authorization","2","2000","Assembly Microsoft.Azure.Management.Authorization is not referenced from any cmdlets assembly","Remove assembly Microsoft.Azure.Management.Authorization from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Dns","Microsoft.Data.Edm","2","2000","Assembly Microsoft.Data.Edm is not referenced from any cmdlets assembly","Remove assembly Microsoft.Data.Edm from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Dns","Microsoft.Data.OData","2","2000","Assembly Microsoft.Data.OData is not referenced from any cmdlets assembly","Remove assembly Microsoft.Data.OData from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Dns","Microsoft.Data.Services.Client","2","2000","Assembly Microsoft.Data.Services.Client is not referenced from any cmdlets assembly","Remove assembly Microsoft.Data.Services.Client from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Dns","Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms","2","2000","Assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms is not referenced from any cmdlets assembly","Remove assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Dns","System.Net.Http.Extensions","2","2000","Assembly System.Net.Http.Extensions is not referenced from any cmdlets assembly","Remove assembly System.Net.Http.Extensions from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Dns","System.Net.Http.Primitives","2","2000","Assembly System.Net.Http.Primitives is not referenced from any cmdlets assembly","Remove assembly System.Net.Http.Primitives from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Dns","System.Spatial","2","2000","Assembly System.Spatial is not referenced from any cmdlets assembly","Remove assembly System.Spatial from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.HDInsight","Microsoft.Azure.ResourceManager","2","2000","Assembly Microsoft.Azure.ResourceManager is not referenced from any cmdlets assembly","Remove assembly Microsoft.Azure.ResourceManager from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.HDInsight","Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms","2","2000","Assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms is not referenced from any cmdlets assembly","Remove assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.HDInsight","Microsoft.Threading.Tasks.Extensions.Desktop","2","2000","Assembly Microsoft.Threading.Tasks.Extensions.Desktop is not referenced from any cmdlets assembly","Remove assembly Microsoft.Threading.Tasks.Extensions.Desktop from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.HDInsight","Microsoft.Threading.Tasks.Extensions","2","2000","Assembly Microsoft.Threading.Tasks.Extensions is not referenced from any cmdlets assembly","Remove assembly Microsoft.Threading.Tasks.Extensions from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Insights","Microsoft.Azure.ResourceManager","2","2000","Assembly Microsoft.Azure.ResourceManager is not referenced from any cmdlets assembly","Remove assembly Microsoft.Azure.ResourceManager from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Insights","Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms","2","2000","Assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms is not referenced from any cmdlets assembly","Remove assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.KeyVault","Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms","2","2000","Assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms is not referenced from any cmdlets assembly","Remove assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.KeyVault","Microsoft.Threading.Tasks.Extensions.Desktop","2","2000","Assembly Microsoft.Threading.Tasks.Extensions.Desktop is not referenced from any cmdlets assembly","Remove assembly Microsoft.Threading.Tasks.Extensions.Desktop from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.KeyVault","Microsoft.Threading.Tasks.Extensions","2","2000","Assembly Microsoft.Threading.Tasks.Extensions is not referenced from any cmdlets assembly","Remove assembly Microsoft.Threading.Tasks.Extensions from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.KeyVault","Microsoft.WindowsAzure.Management","2","2000","Assembly Microsoft.WindowsAzure.Management is not referenced from any cmdlets assembly","Remove assembly Microsoft.WindowsAzure.Management from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.KeyVault","System.Net.Http.Extensions","2","2000","Assembly System.Net.Http.Extensions is not referenced from any cmdlets assembly","Remove assembly System.Net.Http.Extensions from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.KeyVault","System.Net.Http.Primitives","2","2000","Assembly System.Net.Http.Primitives is not referenced from any cmdlets assembly","Remove assembly System.Net.Http.Primitives from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.LogicApp","Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms","2","2000","Assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms is not referenced from any cmdlets assembly","Remove assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.LogicApp","Microsoft.Threading.Tasks.Extensions.Desktop","2","2000","Assembly Microsoft.Threading.Tasks.Extensions.Desktop is not referenced from any cmdlets assembly","Remove assembly Microsoft.Threading.Tasks.Extensions.Desktop from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.LogicApp","Microsoft.Threading.Tasks.Extensions","2","2000","Assembly Microsoft.Threading.Tasks.Extensions is not referenced from any cmdlets assembly","Remove assembly Microsoft.Threading.Tasks.Extensions from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Network","AutoMapper.Net4","2","2000","Assembly AutoMapper.Net4 is not referenced from any cmdlets assembly","Remove assembly AutoMapper.Net4 from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Network","Microsoft.Azure.KeyVault.Core","2","2000","Assembly Microsoft.Azure.KeyVault.Core is not referenced from any cmdlets assembly","Remove assembly Microsoft.Azure.KeyVault.Core from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Network","Microsoft.Data.Edm","2","2000","Assembly Microsoft.Data.Edm is not referenced from any cmdlets assembly","Remove assembly Microsoft.Data.Edm from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Network","Microsoft.Data.OData","2","2000","Assembly Microsoft.Data.OData is not referenced from any cmdlets assembly","Remove assembly Microsoft.Data.OData from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Network","Microsoft.Data.Services.Client","2","2000","Assembly Microsoft.Data.Services.Client is not referenced from any cmdlets assembly","Remove assembly Microsoft.Data.Services.Client from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Network","Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms","2","2000","Assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms is not referenced from any cmdlets assembly","Remove assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Network","Microsoft.Threading.Tasks.Extensions.Desktop","2","2000","Assembly Microsoft.Threading.Tasks.Extensions.Desktop is not referenced from any cmdlets assembly","Remove assembly Microsoft.Threading.Tasks.Extensions.Desktop from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Network","Microsoft.Threading.Tasks.Extensions","2","2000","Assembly Microsoft.Threading.Tasks.Extensions is not referenced from any cmdlets assembly","Remove assembly Microsoft.Threading.Tasks.Extensions from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Network","Microsoft.WindowsAzure.Storage","2","2000","Assembly Microsoft.WindowsAzure.Storage is not referenced from any cmdlets assembly","Remove assembly Microsoft.WindowsAzure.Storage from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Network","System.Net.Http.Extensions","2","2000","Assembly System.Net.Http.Extensions is not referenced from any cmdlets assembly","Remove assembly System.Net.Http.Extensions from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Network","System.Net.Http.Primitives","2","2000","Assembly System.Net.Http.Primitives is not referenced from any cmdlets assembly","Remove assembly System.Net.Http.Primitives from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Network","System.Spatial","2","2000","Assembly System.Spatial is not referenced from any cmdlets assembly","Remove assembly System.Spatial from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.NotificationHubs","Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms","2","2000","Assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms is not referenced from any cmdlets assembly","Remove assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.NotificationHubs","Microsoft.Threading.Tasks.Extensions.Desktop","2","2000","Assembly Microsoft.Threading.Tasks.Extensions.Desktop is not referenced from any cmdlets assembly","Remove assembly Microsoft.Threading.Tasks.Extensions.Desktop from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.NotificationHubs","Microsoft.Threading.Tasks.Extensions","2","2000","Assembly Microsoft.Threading.Tasks.Extensions is not referenced from any cmdlets assembly","Remove assembly Microsoft.Threading.Tasks.Extensions from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.NotificationHubs","System.Net.Http.Extensions","2","2000","Assembly System.Net.Http.Extensions is not referenced from any cmdlets assembly","Remove assembly System.Net.Http.Extensions from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.NotificationHubs","System.Net.Http.Primitives","2","2000","Assembly System.Net.Http.Primitives is not referenced from any cmdlets assembly","Remove assembly System.Net.Http.Primitives from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.OperationalInsights","Microsoft.Azure.ResourceManager","2","2000","Assembly Microsoft.Azure.ResourceManager is not referenced from any cmdlets assembly","Remove assembly Microsoft.Azure.ResourceManager from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.OperationalInsights","Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms","2","2000","Assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms is not referenced from any cmdlets assembly","Remove assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.OperationalInsights","Microsoft.Threading.Tasks.Extensions.Desktop","2","2000","Assembly Microsoft.Threading.Tasks.Extensions.Desktop is not referenced from any cmdlets assembly","Remove assembly Microsoft.Threading.Tasks.Extensions.Desktop from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.OperationalInsights","Microsoft.Threading.Tasks.Extensions","2","2000","Assembly Microsoft.Threading.Tasks.Extensions is not referenced from any cmdlets assembly","Remove assembly Microsoft.Threading.Tasks.Extensions from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.OperationalInsights","Microsoft.WindowsAzure.Management","2","2000","Assembly Microsoft.WindowsAzure.Management is not referenced from any cmdlets assembly","Remove assembly Microsoft.WindowsAzure.Management from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.OperationalInsights","System.Net.Http.Extensions","2","2000","Assembly System.Net.Http.Extensions is not referenced from any cmdlets assembly","Remove assembly System.Net.Http.Extensions from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.OperationalInsights","System.Net.Http.Primitives","2","2000","Assembly System.Net.Http.Primitives is not referenced from any cmdlets assembly","Remove assembly System.Net.Http.Primitives from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Profile","Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms","2","2000","Assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms is not referenced from any cmdlets assembly","Remove assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Profile","Microsoft.Threading.Tasks.Extensions.Desktop","2","2000","Assembly Microsoft.Threading.Tasks.Extensions.Desktop is not referenced from any cmdlets assembly","Remove assembly Microsoft.Threading.Tasks.Extensions.Desktop from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Profile","Microsoft.Threading.Tasks.Extensions","2","2000","Assembly Microsoft.Threading.Tasks.Extensions is not referenced from any cmdlets assembly","Remove assembly Microsoft.Threading.Tasks.Extensions from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Profile","Microsoft.WindowsAzure.Management","2","2000","Assembly Microsoft.WindowsAzure.Management is not referenced from any cmdlets assembly","Remove assembly Microsoft.WindowsAzure.Management from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Profile","System.Net.Http.Extensions","2","2000","Assembly System.Net.Http.Extensions is not referenced from any cmdlets assembly","Remove assembly System.Net.Http.Extensions from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Profile","System.Net.Http.Primitives","2","2000","Assembly System.Net.Http.Primitives is not referenced from any cmdlets assembly","Remove assembly System.Net.Http.Primitives from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.RecoveryServices","Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms","2","2000","Assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms is not referenced from any cmdlets assembly","Remove assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.RecoveryServices","Microsoft.Threading.Tasks.Extensions.Desktop","2","2000","Assembly Microsoft.Threading.Tasks.Extensions.Desktop is not referenced from any cmdlets assembly","Remove assembly Microsoft.Threading.Tasks.Extensions.Desktop from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.RecoveryServices","Microsoft.Threading.Tasks.Extensions","2","2000","Assembly Microsoft.Threading.Tasks.Extensions is not referenced from any cmdlets assembly","Remove assembly Microsoft.Threading.Tasks.Extensions from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.RecoveryServices","System.Net.Http.Extensions","2","2000","Assembly System.Net.Http.Extensions is not referenced from any cmdlets assembly","Remove assembly System.Net.Http.Extensions from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.RecoveryServices","System.Net.Http.Primitives","2","2000","Assembly System.Net.Http.Primitives is not referenced from any cmdlets assembly","Remove assembly System.Net.Http.Primitives from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.RedisCache","Microsoft.Azure.KeyVault.Core","2","2000","Assembly Microsoft.Azure.KeyVault.Core is not referenced from any cmdlets assembly","Remove assembly Microsoft.Azure.KeyVault.Core from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.RedisCache","Microsoft.Azure.ResourceManager","2","2000","Assembly Microsoft.Azure.ResourceManager is not referenced from any cmdlets assembly","Remove assembly Microsoft.Azure.ResourceManager from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.RedisCache","Microsoft.Data.Edm","2","2000","Assembly Microsoft.Data.Edm is not referenced from any cmdlets assembly","Remove assembly Microsoft.Data.Edm from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.RedisCache","Microsoft.Data.OData","2","2000","Assembly Microsoft.Data.OData is not referenced from any cmdlets assembly","Remove assembly Microsoft.Data.OData from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.RedisCache","Microsoft.Data.Services.Client","2","2000","Assembly Microsoft.Data.Services.Client is not referenced from any cmdlets assembly","Remove assembly Microsoft.Data.Services.Client from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.RedisCache","Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms","2","2000","Assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms is not referenced from any cmdlets assembly","Remove assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.RedisCache","Microsoft.Threading.Tasks.Extensions.Desktop","2","2000","Assembly Microsoft.Threading.Tasks.Extensions.Desktop is not referenced from any cmdlets assembly","Remove assembly Microsoft.Threading.Tasks.Extensions.Desktop from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.RedisCache","Microsoft.Threading.Tasks.Extensions","2","2000","Assembly Microsoft.Threading.Tasks.Extensions is not referenced from any cmdlets assembly","Remove assembly Microsoft.Threading.Tasks.Extensions from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.RedisCache","Microsoft.WindowsAzure.Management","2","2000","Assembly Microsoft.WindowsAzure.Management is not referenced from any cmdlets assembly","Remove assembly Microsoft.WindowsAzure.Management from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.RedisCache","Microsoft.WindowsAzure.Storage","2","2000","Assembly Microsoft.WindowsAzure.Storage is not referenced from any cmdlets assembly","Remove assembly Microsoft.WindowsAzure.Storage from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.RedisCache","System.Net.Http.Extensions","2","2000","Assembly System.Net.Http.Extensions is not referenced from any cmdlets assembly","Remove assembly System.Net.Http.Extensions from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.RedisCache","System.Net.Http.Primitives","2","2000","Assembly System.Net.Http.Primitives is not referenced from any cmdlets assembly","Remove assembly System.Net.Http.Primitives from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.RedisCache","System.Spatial","2","2000","Assembly System.Spatial is not referenced from any cmdlets assembly","Remove assembly System.Spatial from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Resources","Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms","2","2000","Assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms is not referenced from any cmdlets assembly","Remove assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Resources","Microsoft.Threading.Tasks.Extensions.Desktop","2","2000","Assembly Microsoft.Threading.Tasks.Extensions.Desktop is not referenced from any cmdlets assembly","Remove assembly Microsoft.Threading.Tasks.Extensions.Desktop from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Resources","Microsoft.Threading.Tasks.Extensions","2","2000","Assembly Microsoft.Threading.Tasks.Extensions is not referenced from any cmdlets assembly","Remove assembly Microsoft.Threading.Tasks.Extensions from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Resources","Microsoft.WindowsAzure.Management","2","2000","Assembly Microsoft.WindowsAzure.Management is not referenced from any cmdlets assembly","Remove assembly Microsoft.WindowsAzure.Management from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Resources","System.Net.Http.Extensions","2","2000","Assembly System.Net.Http.Extensions is not referenced from any cmdlets assembly","Remove assembly System.Net.Http.Extensions from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Resources","System.Net.Http.Primitives","2","2000","Assembly System.Net.Http.Primitives is not referenced from any cmdlets assembly","Remove assembly System.Net.Http.Primitives from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.SiteRecovery","Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms","2","2000","Assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms is not referenced from any cmdlets assembly","Remove assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.SiteRecovery","Microsoft.Threading.Tasks.Extensions.Desktop","2","2000","Assembly Microsoft.Threading.Tasks.Extensions.Desktop is not referenced from any cmdlets assembly","Remove assembly Microsoft.Threading.Tasks.Extensions.Desktop from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.SiteRecovery","Microsoft.Threading.Tasks.Extensions","2","2000","Assembly Microsoft.Threading.Tasks.Extensions is not referenced from any cmdlets assembly","Remove assembly Microsoft.Threading.Tasks.Extensions from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.SiteRecovery","System.Net.Http.Extensions","2","2000","Assembly System.Net.Http.Extensions is not referenced from any cmdlets assembly","Remove assembly System.Net.Http.Extensions from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.SiteRecovery","System.Net.Http.Primitives","2","2000","Assembly System.Net.Http.Primitives is not referenced from any cmdlets assembly","Remove assembly System.Net.Http.Primitives from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Sql","Microsoft.Azure.KeyVault.Core","2","2000","Assembly Microsoft.Azure.KeyVault.Core is not referenced from any cmdlets assembly","Remove assembly Microsoft.Azure.KeyVault.Core from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Sql","Microsoft.Data.Edm","2","2000","Assembly Microsoft.Data.Edm is not referenced from any cmdlets assembly","Remove assembly Microsoft.Data.Edm from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Sql","Microsoft.Data.OData","2","2000","Assembly Microsoft.Data.OData is not referenced from any cmdlets assembly","Remove assembly Microsoft.Data.OData from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Sql","Microsoft.Data.Services.Client","2","2000","Assembly Microsoft.Data.Services.Client is not referenced from any cmdlets assembly","Remove assembly Microsoft.Data.Services.Client from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Sql","Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms","2","2000","Assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms is not referenced from any cmdlets assembly","Remove assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Sql","Microsoft.WindowsAzure.Management","2","2000","Assembly Microsoft.WindowsAzure.Management is not referenced from any cmdlets assembly","Remove assembly Microsoft.WindowsAzure.Management from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Sql","Microsoft.WindowsAzure.Storage","2","2000","Assembly Microsoft.WindowsAzure.Storage is not referenced from any cmdlets assembly","Remove assembly Microsoft.WindowsAzure.Storage from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Sql","System.Net.Http.Extensions","2","2000","Assembly System.Net.Http.Extensions is not referenced from any cmdlets assembly","Remove assembly System.Net.Http.Extensions from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Sql","System.Net.Http.Primitives","2","2000","Assembly System.Net.Http.Primitives is not referenced from any cmdlets assembly","Remove assembly System.Net.Http.Primitives from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Sql","System.Spatial","2","2000","Assembly System.Spatial is not referenced from any cmdlets assembly","Remove assembly System.Spatial from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Storage","Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms","2","2000","Assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms is not referenced from any cmdlets assembly","Remove assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Storage","Microsoft.Threading.Tasks.Extensions.Desktop","2","2000","Assembly Microsoft.Threading.Tasks.Extensions.Desktop is not referenced from any cmdlets assembly","Remove assembly Microsoft.Threading.Tasks.Extensions.Desktop from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Storage","Microsoft.Threading.Tasks.Extensions","2","2000","Assembly Microsoft.Threading.Tasks.Extensions is not referenced from any cmdlets assembly","Remove assembly Microsoft.Threading.Tasks.Extensions from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Storage","System.Net.Http.Extensions","2","2000","Assembly System.Net.Http.Extensions is not referenced from any cmdlets assembly","Remove assembly System.Net.Http.Extensions from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Storage","System.Net.Http.Primitives","2","2000","Assembly System.Net.Http.Primitives is not referenced from any cmdlets assembly","Remove assembly System.Net.Http.Primitives from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.StreamAnalytics","Microsoft.Azure.KeyVault.Core","2","2000","Assembly Microsoft.Azure.KeyVault.Core is not referenced from any cmdlets assembly","Remove assembly Microsoft.Azure.KeyVault.Core from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.StreamAnalytics","Microsoft.Azure.ResourceManager","2","2000","Assembly Microsoft.Azure.ResourceManager is not referenced from any cmdlets assembly","Remove assembly Microsoft.Azure.ResourceManager from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.StreamAnalytics","Microsoft.Data.Edm","2","2000","Assembly Microsoft.Data.Edm is not referenced from any cmdlets assembly","Remove assembly Microsoft.Data.Edm from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.StreamAnalytics","Microsoft.Data.OData","2","2000","Assembly Microsoft.Data.OData is not referenced from any cmdlets assembly","Remove assembly Microsoft.Data.OData from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.StreamAnalytics","Microsoft.Data.Services.Client","2","2000","Assembly Microsoft.Data.Services.Client is not referenced from any cmdlets assembly","Remove assembly Microsoft.Data.Services.Client from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.StreamAnalytics","Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms","2","2000","Assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms is not referenced from any cmdlets assembly","Remove assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.StreamAnalytics","Microsoft.WindowsAzure.Management","2","2000","Assembly Microsoft.WindowsAzure.Management is not referenced from any cmdlets assembly","Remove assembly Microsoft.WindowsAzure.Management from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.StreamAnalytics","Microsoft.WindowsAzure.Storage","2","2000","Assembly Microsoft.WindowsAzure.Storage is not referenced from any cmdlets assembly","Remove assembly Microsoft.WindowsAzure.Storage from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.StreamAnalytics","System.Net.Http.Extensions","2","2000","Assembly System.Net.Http.Extensions is not referenced from any cmdlets assembly","Remove assembly System.Net.Http.Extensions from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.StreamAnalytics","System.Net.Http.Primitives","2","2000","Assembly System.Net.Http.Primitives is not referenced from any cmdlets assembly","Remove assembly System.Net.Http.Primitives from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.StreamAnalytics","System.Spatial","2","2000","Assembly System.Spatial is not referenced from any cmdlets assembly","Remove assembly System.Spatial from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Tags","Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms","2","2000","Assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms is not referenced from any cmdlets assembly","Remove assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Tags","Microsoft.Threading.Tasks.Extensions.Desktop","2","2000","Assembly Microsoft.Threading.Tasks.Extensions.Desktop is not referenced from any cmdlets assembly","Remove assembly Microsoft.Threading.Tasks.Extensions.Desktop from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Tags","Microsoft.Threading.Tasks.Extensions","2","2000","Assembly Microsoft.Threading.Tasks.Extensions is not referenced from any cmdlets assembly","Remove assembly Microsoft.Threading.Tasks.Extensions from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Tags","Microsoft.WindowsAzure.Management","2","2000","Assembly Microsoft.WindowsAzure.Management is not referenced from any cmdlets assembly","Remove assembly Microsoft.WindowsAzure.Management from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Tags","System.Net.Http.Extensions","2","2000","Assembly System.Net.Http.Extensions is not referenced from any cmdlets assembly","Remove assembly System.Net.Http.Extensions from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Tags","System.Net.Http.Primitives","2","2000","Assembly System.Net.Http.Primitives is not referenced from any cmdlets assembly","Remove assembly System.Net.Http.Primitives from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.TrafficManager","Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms","2","2000","Assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms is not referenced from any cmdlets assembly","Remove assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.UsageAggregates","Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms","2","2000","Assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms is not referenced from any cmdlets assembly","Remove assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.UsageAggregates","Microsoft.Threading.Tasks.Extensions.Desktop","2","2000","Assembly Microsoft.Threading.Tasks.Extensions.Desktop is not referenced from any cmdlets assembly","Remove assembly Microsoft.Threading.Tasks.Extensions.Desktop from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.UsageAggregates","Microsoft.Threading.Tasks.Extensions","2","2000","Assembly Microsoft.Threading.Tasks.Extensions is not referenced from any cmdlets assembly","Remove assembly Microsoft.Threading.Tasks.Extensions from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Websites","Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms","2","2000","Assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms is not referenced from any cmdlets assembly","Remove assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Websites","Microsoft.Threading.Tasks.Extensions.Desktop","2","2000","Assembly Microsoft.Threading.Tasks.Extensions.Desktop is not referenced from any cmdlets assembly","Remove assembly Microsoft.Threading.Tasks.Extensions.Desktop from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Websites","Microsoft.Threading.Tasks.Extensions","2","2000","Assembly Microsoft.Threading.Tasks.Extensions is not referenced from any cmdlets assembly","Remove assembly Microsoft.Threading.Tasks.Extensions from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Websites","System.Net.Http.Extensions","2","2000","Assembly System.Net.Http.Extensions is not referenced from any cmdlets assembly","Remove assembly System.Net.Http.Extensions from the project and regenerate the Wix file"
+"src\Package\Debug\ResourceManager\AzureResourceManager\AzureRM.Websites","System.Net.Http.Primitives","2","2000","Assembly System.Net.Http.Primitives is not referenced from any cmdlets assembly","Remove assembly System.Net.Http.Primitives from the project and regenerate the Wix file"
+"src\Package\Debug\ServiceManagement\Azure\Automation","Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms","2","2000","Assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms is not referenced from any cmdlets assembly","Remove assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms from the project and regenerate the Wix file"
+"src\Package\Debug\ServiceManagement\Azure\Automation","Microsoft.Threading.Tasks.Extensions.Desktop","2","2000","Assembly Microsoft.Threading.Tasks.Extensions.Desktop is not referenced from any cmdlets assembly","Remove assembly Microsoft.Threading.Tasks.Extensions.Desktop from the project and regenerate the Wix file"
+"src\Package\Debug\ServiceManagement\Azure\Automation","Microsoft.Threading.Tasks.Extensions","2","2000","Assembly Microsoft.Threading.Tasks.Extensions is not referenced from any cmdlets assembly","Remove assembly Microsoft.Threading.Tasks.Extensions from the project and regenerate the Wix file"
+"src\Package\Debug\ServiceManagement\Azure\Automation","System.Net.Http.Extensions","2","2000","Assembly System.Net.Http.Extensions is not referenced from any cmdlets assembly","Remove assembly System.Net.Http.Extensions from the project and regenerate the Wix file"
+"src\Package\Debug\ServiceManagement\Azure\Automation","System.Net.Http.Primitives","2","2000","Assembly System.Net.Http.Primitives is not referenced from any cmdlets assembly","Remove assembly System.Net.Http.Primitives from the project and regenerate the Wix file"
+"src\Package\Debug\ServiceManagement\Azure\Azure.Storage","Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms","2","2000","Assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms is not referenced from any cmdlets assembly","Remove assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms from the project and regenerate the Wix file"
+"src\Package\Debug\ServiceManagement\Azure\Azure.Storage","Microsoft.Threading.Tasks.Extensions.Desktop","2","2000","Assembly Microsoft.Threading.Tasks.Extensions.Desktop is not referenced from any cmdlets assembly","Remove assembly Microsoft.Threading.Tasks.Extensions.Desktop from the project and regenerate the Wix file"
+"src\Package\Debug\ServiceManagement\Azure\Azure.Storage","Microsoft.Threading.Tasks.Extensions","2","2000","Assembly Microsoft.Threading.Tasks.Extensions is not referenced from any cmdlets assembly","Remove assembly Microsoft.Threading.Tasks.Extensions from the project and regenerate the Wix file"
+"src\Package\Debug\ServiceManagement\Azure\Azure.Storage","System.Net.Http.Extensions","2","2000","Assembly System.Net.Http.Extensions is not referenced from any cmdlets assembly","Remove assembly System.Net.Http.Extensions from the project and regenerate the Wix file"
+"src\Package\Debug\ServiceManagement\Azure\Azure.Storage","System.Net.Http.Primitives","2","2000","Assembly System.Net.Http.Primitives is not referenced from any cmdlets assembly","Remove assembly System.Net.Http.Primitives from the project and regenerate the Wix file"
+"src\Package\Debug\ServiceManagement\Azure\Compute","AutoMapper.Net4","2","2000","Assembly AutoMapper.Net4 is not referenced from any cmdlets assembly","Remove assembly AutoMapper.Net4 from the project and regenerate the Wix file"
+"src\Package\Debug\ServiceManagement\Azure\Compute","Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms","2","2000","Assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms is not referenced from any cmdlets assembly","Remove assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms from the project and regenerate the Wix file"
+"src\Package\Debug\ServiceManagement\Azure\Compute","Microsoft.Threading.Tasks.Extensions.Desktop","2","2000","Assembly Microsoft.Threading.Tasks.Extensions.Desktop is not referenced from any cmdlets assembly","Remove assembly Microsoft.Threading.Tasks.Extensions.Desktop from the project and regenerate the Wix file"
+"src\Package\Debug\ServiceManagement\Azure\Compute","Microsoft.Threading.Tasks.Extensions","2","2000","Assembly Microsoft.Threading.Tasks.Extensions is not referenced from any cmdlets assembly","Remove assembly Microsoft.Threading.Tasks.Extensions from the project and regenerate the Wix file"
+"src\Package\Debug\ServiceManagement\Azure\Compute","Microsoft.WindowsAzure.Configuration","2","2000","Assembly Microsoft.WindowsAzure.Configuration is not referenced from any cmdlets assembly","Remove assembly Microsoft.WindowsAzure.Configuration from the project and regenerate the Wix file"
+"src\Package\Debug\ServiceManagement\Azure\Compute","System.Net.Http.Extensions","2","2000","Assembly System.Net.Http.Extensions is not referenced from any cmdlets assembly","Remove assembly System.Net.Http.Extensions from the project and regenerate the Wix file"
+"src\Package\Debug\ServiceManagement\Azure\Compute","System.Net.Http.Primitives","2","2000","Assembly System.Net.Http.Primitives is not referenced from any cmdlets assembly","Remove assembly System.Net.Http.Primitives from the project and regenerate the Wix file"
+"src\Package\Debug\ServiceManagement\Azure\ExpressRoute","Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms","2","2000","Assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms is not referenced from any cmdlets assembly","Remove assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms from the project and regenerate the Wix file"
+"src\Package\Debug\ServiceManagement\Azure\ExpressRoute","Microsoft.Threading.Tasks.Extensions.Desktop","2","2000","Assembly Microsoft.Threading.Tasks.Extensions.Desktop is not referenced from any cmdlets assembly","Remove assembly Microsoft.Threading.Tasks.Extensions.Desktop from the project and regenerate the Wix file"
+"src\Package\Debug\ServiceManagement\Azure\ExpressRoute","Microsoft.Threading.Tasks.Extensions","2","2000","Assembly Microsoft.Threading.Tasks.Extensions is not referenced from any cmdlets assembly","Remove assembly Microsoft.Threading.Tasks.Extensions from the project and regenerate the Wix file"
+"src\Package\Debug\ServiceManagement\Azure\ExpressRoute","System.Net.Http.Extensions","2","2000","Assembly System.Net.Http.Extensions is not referenced from any cmdlets assembly","Remove assembly System.Net.Http.Extensions from the project and regenerate the Wix file"
+"src\Package\Debug\ServiceManagement\Azure\ExpressRoute","System.Net.Http.Primitives","2","2000","Assembly System.Net.Http.Primitives is not referenced from any cmdlets assembly","Remove assembly System.Net.Http.Primitives from the project and regenerate the Wix file"
+"src\Package\Debug\ServiceManagement\Azure\HDInsight","Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms","2","2000","Assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms is not referenced from any cmdlets assembly","Remove assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms from the project and regenerate the Wix file"
+"src\Package\Debug\ServiceManagement\Azure\HDInsight","Microsoft.Threading.Tasks.Extensions.Desktop","2","2000","Assembly Microsoft.Threading.Tasks.Extensions.Desktop is not referenced from any cmdlets assembly","Remove assembly Microsoft.Threading.Tasks.Extensions.Desktop from the project and regenerate the Wix file"
+"src\Package\Debug\ServiceManagement\Azure\HDInsight","Microsoft.Threading.Tasks.Extensions","2","2000","Assembly Microsoft.Threading.Tasks.Extensions is not referenced from any cmdlets assembly","Remove assembly Microsoft.Threading.Tasks.Extensions from the project and regenerate the Wix file"
+"src\Package\Debug\ServiceManagement\Azure\HDInsight","System.Net.Http.Extensions","2","2000","Assembly System.Net.Http.Extensions is not referenced from any cmdlets assembly","Remove assembly System.Net.Http.Extensions from the project and regenerate the Wix file"
+"src\Package\Debug\ServiceManagement\Azure\HDInsight","System.Net.Http.Primitives","2","2000","Assembly System.Net.Http.Primitives is not referenced from any cmdlets assembly","Remove assembly System.Net.Http.Primitives from the project and regenerate the Wix file"
+"src\Package\Debug\ServiceManagement\Azure\ManagedCache","Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms","2","2000","Assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms is not referenced from any cmdlets assembly","Remove assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms from the project and regenerate the Wix file"
+"src\Package\Debug\ServiceManagement\Azure\ManagedCache","Microsoft.Threading.Tasks.Extensions.Desktop","2","2000","Assembly Microsoft.Threading.Tasks.Extensions.Desktop is not referenced from any cmdlets assembly","Remove assembly Microsoft.Threading.Tasks.Extensions.Desktop from the project and regenerate the Wix file"
+"src\Package\Debug\ServiceManagement\Azure\ManagedCache","Microsoft.Threading.Tasks.Extensions","2","2000","Assembly Microsoft.Threading.Tasks.Extensions is not referenced from any cmdlets assembly","Remove assembly Microsoft.Threading.Tasks.Extensions from the project and regenerate the Wix file"
+"src\Package\Debug\ServiceManagement\Azure\ManagedCache","System.Net.Http.Extensions","2","2000","Assembly System.Net.Http.Extensions is not referenced from any cmdlets assembly","Remove assembly System.Net.Http.Extensions from the project and regenerate the Wix file"
+"src\Package\Debug\ServiceManagement\Azure\ManagedCache","System.Net.Http.Primitives","2","2000","Assembly System.Net.Http.Primitives is not referenced from any cmdlets assembly","Remove assembly System.Net.Http.Primitives from the project and regenerate the Wix file"
+"src\Package\Debug\ServiceManagement\Azure\Networking","AutoMapper.Net4","2","2000","Assembly AutoMapper.Net4 is not referenced from any cmdlets assembly","Remove assembly AutoMapper.Net4 from the project and regenerate the Wix file"
+"src\Package\Debug\ServiceManagement\Azure\Networking","Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms","2","2000","Assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms is not referenced from any cmdlets assembly","Remove assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms from the project and regenerate the Wix file"
+"src\Package\Debug\ServiceManagement\Azure\Networking","System.Net.Http.Extensions","2","2000","Assembly System.Net.Http.Extensions is not referenced from any cmdlets assembly","Remove assembly System.Net.Http.Extensions from the project and regenerate the Wix file"
+"src\Package\Debug\ServiceManagement\Azure\Networking","System.Net.Http.Primitives","2","2000","Assembly System.Net.Http.Primitives is not referenced from any cmdlets assembly","Remove assembly System.Net.Http.Primitives from the project and regenerate the Wix file"
+"src\Package\Debug\ServiceManagement\Azure\RecoveryServices","Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms","2","2000","Assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms is not referenced from any cmdlets assembly","Remove assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms from the project and regenerate the Wix file"
+"src\Package\Debug\ServiceManagement\Azure\RecoveryServices","Microsoft.Threading.Tasks.Extensions.Desktop","2","2000","Assembly Microsoft.Threading.Tasks.Extensions.Desktop is not referenced from any cmdlets assembly","Remove assembly Microsoft.Threading.Tasks.Extensions.Desktop from the project and regenerate the Wix file"
+"src\Package\Debug\ServiceManagement\Azure\RecoveryServices","Microsoft.Threading.Tasks.Extensions","2","2000","Assembly Microsoft.Threading.Tasks.Extensions is not referenced from any cmdlets assembly","Remove assembly Microsoft.Threading.Tasks.Extensions from the project and regenerate the Wix file"
+"src\Package\Debug\ServiceManagement\Azure\RecoveryServices","Microsoft.WindowsAzure.Management.Storage","2","2000","Assembly Microsoft.WindowsAzure.Management.Storage is not referenced from any cmdlets assembly","Remove assembly Microsoft.WindowsAzure.Management.Storage from the project and regenerate the Wix file"
+"src\Package\Debug\ServiceManagement\Azure\RecoveryServices","System.Net.Http.Extensions","2","2000","Assembly System.Net.Http.Extensions is not referenced from any cmdlets assembly","Remove assembly System.Net.Http.Extensions from the project and regenerate the Wix file"
+"src\Package\Debug\ServiceManagement\Azure\RecoveryServices","System.Net.Http.Primitives","2","2000","Assembly System.Net.Http.Primitives is not referenced from any cmdlets assembly","Remove assembly System.Net.Http.Primitives from the project and regenerate the Wix file"
+"src\Package\Debug\ServiceManagement\Azure\RemoteApp","Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms","2","2000","Assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms is not referenced from any cmdlets assembly","Remove assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms from the project and regenerate the Wix file"
+"src\Package\Debug\ServiceManagement\Azure\RemoteApp","Microsoft.Threading.Tasks.Extensions.Desktop","2","2000","Assembly Microsoft.Threading.Tasks.Extensions.Desktop is not referenced from any cmdlets assembly","Remove assembly Microsoft.Threading.Tasks.Extensions.Desktop from the project and regenerate the Wix file"
+"src\Package\Debug\ServiceManagement\Azure\RemoteApp","Microsoft.Threading.Tasks.Extensions","2","2000","Assembly Microsoft.Threading.Tasks.Extensions is not referenced from any cmdlets assembly","Remove assembly Microsoft.Threading.Tasks.Extensions from the project and regenerate the Wix file"
+"src\Package\Debug\ServiceManagement\Azure\RemoteApp","System.Net.Http.Extensions","2","2000","Assembly System.Net.Http.Extensions is not referenced from any cmdlets assembly","Remove assembly System.Net.Http.Extensions from the project and regenerate the Wix file"
+"src\Package\Debug\ServiceManagement\Azure\RemoteApp","System.Net.Http.Primitives","2","2000","Assembly System.Net.Http.Primitives is not referenced from any cmdlets assembly","Remove assembly System.Net.Http.Primitives from the project and regenerate the Wix file"
+"src\Package\Debug\ServiceManagement\Azure\Services","AutoMapper.Net4","2","2000","Assembly AutoMapper.Net4 is not referenced from any cmdlets assembly","Remove assembly AutoMapper.Net4 from the project and regenerate the Wix file"
+"src\Package\Debug\ServiceManagement\Azure\Services","Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms","2","2000","Assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms is not referenced from any cmdlets assembly","Remove assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms from the project and regenerate the Wix file"
+"src\Package\Debug\ServiceManagement\Azure\Services","Microsoft.Threading.Tasks.Extensions.Desktop","2","2000","Assembly Microsoft.Threading.Tasks.Extensions.Desktop is not referenced from any cmdlets assembly","Remove assembly Microsoft.Threading.Tasks.Extensions.Desktop from the project and regenerate the Wix file"
+"src\Package\Debug\ServiceManagement\Azure\Services","Microsoft.Threading.Tasks.Extensions","2","2000","Assembly Microsoft.Threading.Tasks.Extensions is not referenced from any cmdlets assembly","Remove assembly Microsoft.Threading.Tasks.Extensions from the project and regenerate the Wix file"
+"src\Package\Debug\ServiceManagement\Azure\Services","Microsoft.WindowsAzure.Configuration","2","2000","Assembly Microsoft.WindowsAzure.Configuration is not referenced from any cmdlets assembly","Remove assembly Microsoft.WindowsAzure.Configuration from the project and regenerate the Wix file"
+"src\Package\Debug\ServiceManagement\Azure\Services","Microsoft.WindowsAzure.Management.TrafficManager","2","2000","Assembly Microsoft.WindowsAzure.Management.TrafficManager is not referenced from any cmdlets assembly","Remove assembly Microsoft.WindowsAzure.Management.TrafficManager from the project and regenerate the Wix file"
+"src\Package\Debug\ServiceManagement\Azure\Services","System.Net.Http.Extensions","2","2000","Assembly System.Net.Http.Extensions is not referenced from any cmdlets assembly","Remove assembly System.Net.Http.Extensions from the project and regenerate the Wix file"
+"src\Package\Debug\ServiceManagement\Azure\Services","System.Net.Http.Primitives","2","2000","Assembly System.Net.Http.Primitives is not referenced from any cmdlets assembly","Remove assembly System.Net.Http.Primitives from the project and regenerate the Wix file"
+"src\Package\Debug\ServiceManagement\Azure\Sql","Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms","2","2000","Assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms is not referenced from any cmdlets assembly","Remove assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms from the project and regenerate the Wix file"
+"src\Package\Debug\ServiceManagement\Azure\Sql","Microsoft.Threading.Tasks.Extensions.Desktop","2","2000","Assembly Microsoft.Threading.Tasks.Extensions.Desktop is not referenced from any cmdlets assembly","Remove assembly Microsoft.Threading.Tasks.Extensions.Desktop from the project and regenerate the Wix file"
+"src\Package\Debug\ServiceManagement\Azure\Sql","Microsoft.Threading.Tasks.Extensions","2","2000","Assembly Microsoft.Threading.Tasks.Extensions is not referenced from any cmdlets assembly","Remove assembly Microsoft.Threading.Tasks.Extensions from the project and regenerate the Wix file"
+"src\Package\Debug\ServiceManagement\Azure\Sql","System.Net.Http.Extensions","2","2000","Assembly System.Net.Http.Extensions is not referenced from any cmdlets assembly","Remove assembly System.Net.Http.Extensions from the project and regenerate the Wix file"
+"src\Package\Debug\ServiceManagement\Azure\Sql","System.Net.Http.Primitives","2","2000","Assembly System.Net.Http.Primitives is not referenced from any cmdlets assembly","Remove assembly System.Net.Http.Primitives from the project and regenerate the Wix file"
+"src\Package\Debug\ServiceManagement\Azure\StorSimple","Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms","2","2000","Assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms is not referenced from any cmdlets assembly","Remove assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms from the project and regenerate the Wix file"
+"src\Package\Debug\ServiceManagement\Azure\StorSimple","Microsoft.Threading.Tasks.Extensions.Desktop","2","2000","Assembly Microsoft.Threading.Tasks.Extensions.Desktop is not referenced from any cmdlets assembly","Remove assembly Microsoft.Threading.Tasks.Extensions.Desktop from the project and regenerate the Wix file"
+"src\Package\Debug\ServiceManagement\Azure\StorSimple","Microsoft.Threading.Tasks.Extensions","2","2000","Assembly Microsoft.Threading.Tasks.Extensions is not referenced from any cmdlets assembly","Remove assembly Microsoft.Threading.Tasks.Extensions from the project and regenerate the Wix file"
+"src\Package\Debug\ServiceManagement\Azure\StorSimple","System.Net.Http.Extensions","2","2000","Assembly System.Net.Http.Extensions is not referenced from any cmdlets assembly","Remove assembly System.Net.Http.Extensions from the project and regenerate the Wix file"
+"src\Package\Debug\ServiceManagement\Azure\StorSimple","System.Net.Http.Primitives","2","2000","Assembly System.Net.Http.Primitives is not referenced from any cmdlets assembly","Remove assembly System.Net.Http.Primitives from the project and regenerate the Wix file"
+"src\Package\Debug\ServiceManagement\Azure\TrafficManager","Microsoft.Data.Edm","2","2000","Assembly Microsoft.Data.Edm is not referenced from any cmdlets assembly","Remove assembly Microsoft.Data.Edm from the project and regenerate the Wix file"
+"src\Package\Debug\ServiceManagement\Azure\TrafficManager","Microsoft.Data.OData","2","2000","Assembly Microsoft.Data.OData is not referenced from any cmdlets assembly","Remove assembly Microsoft.Data.OData from the project and regenerate the Wix file"
+"src\Package\Debug\ServiceManagement\Azure\TrafficManager","Microsoft.Data.Services.Client","2","2000","Assembly Microsoft.Data.Services.Client is not referenced from any cmdlets assembly","Remove assembly Microsoft.Data.Services.Client from the project and regenerate the Wix file"
+"src\Package\Debug\ServiceManagement\Azure\TrafficManager","Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms","2","2000","Assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms is not referenced from any cmdlets assembly","Remove assembly Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms from the project and regenerate the Wix file"
+"src\Package\Debug\ServiceManagement\Azure\TrafficManager","Microsoft.Threading.Tasks.Extensions.Desktop","2","2000","Assembly Microsoft.Threading.Tasks.Extensions.Desktop is not referenced from any cmdlets assembly","Remove assembly Microsoft.Threading.Tasks.Extensions.Desktop from the project and regenerate the Wix file"
+"src\Package\Debug\ServiceManagement\Azure\TrafficManager","Microsoft.Threading.Tasks.Extensions","2","2000","Assembly Microsoft.Threading.Tasks.Extensions is not referenced from any cmdlets assembly","Remove assembly Microsoft.Threading.Tasks.Extensions from the project and regenerate the Wix file"
+"src\Package\Debug\ServiceManagement\Azure\TrafficManager","System.Net.Http.Extensions","2","2000","Assembly System.Net.Http.Extensions is not referenced from any cmdlets assembly","Remove assembly System.Net.Http.Extensions from the project and regenerate the Wix file"
+"src\Package\Debug\ServiceManagement\Azure\TrafficManager","System.Net.Http.Primitives","2","2000","Assembly System.Net.Http.Primitives is not referenced from any cmdlets assembly","Remove assembly System.Net.Http.Primitives from the project and regenerate the Wix file"
+"src\Package\Debug\ServiceManagement\Azure\TrafficManager","System.Spatial","2","2000","Assembly System.Spatial is not referenced from any cmdlets assembly","Remove assembly System.Spatial from the project and regenerate the Wix file"
diff --git a/tools/StaticAnalysis/Exceptions/HelpIssues.csv b/tools/StaticAnalysis/Exceptions/HelpIssues.csv
new file mode 100644
index 000000000000..28c9bc941b80
--- /dev/null
+++ b/tools/StaticAnalysis/Exceptions/HelpIssues.csv
@@ -0,0 +1,112 @@
+"Assembly","HelpFile","Target","Severity","ProblemId","Description","Remediation"
+"Microsoft.Azure.Commands.ResourceManager.Automation.dll","Microsoft.Azure.Commands.ResourceManager.Automation.dll-help.xml","Microsoft.Azure.Commands.Automation.Cmdlet.GetAzureAutomationJobOutputRecord","1","6050","Help missing for cmdlet Get-AzureRmAutomationJobOutputRecord implemented by class Microsoft.Azure.Commands.Automation.Cmdlet.GetAzureAutomationJobOutputRecord","Add Help record for cmdlet Get-AzureRmAutomationJobOutputRecord to help file."
+"Microsoft.Azure.Commands.ResourceManager.Automation.dll","Microsoft.Azure.Commands.ResourceManager.Automation.dll-help.xml","Microsoft.Azure.Commands.Automation.Cmdlet.RemoveAzureAutomationDscNodeConfiguration","1","6050","Help missing for cmdlet Remove-AzureRmAutomationDscNodeConfiguration implemented by class Microsoft.Azure.Commands.Automation.Cmdlet.RemoveAzureAutomationDscNodeConfiguration","Add Help record for cmdlet Remove-AzureRmAutomationDscNodeConfiguration to help file."
+"Microsoft.Azure.Commands.ResourceManager.Automation.dll","Microsoft.Azure.Commands.ResourceManager.Automation.dll-help.xml","Microsoft.Azure.Commands.Automation.Cmdlet.RemoveAzureAutomationDscConfiguration","1","6050","Help missing for cmdlet Remove-AzureRmAutomationDscConfiguration implemented by class Microsoft.Azure.Commands.Automation.Cmdlet.RemoveAzureAutomationDscConfiguration","Add Help record for cmdlet Remove-AzureRmAutomationDscConfiguration to help file."
+"Microsoft.AzureStack.Commands.StorageAdmin.dll","Microsoft.AzureStack.Commands.StorageAdmin.dll-Help.xml","Microsoft.AzureStack.Commands.StorageAdmin.GetEvent","1","6050","Help missing for cmdlet Get-ACSEvent implemented by class Microsoft.AzureStack.Commands.StorageAdmin.GetEvent","Add Help record for cmdlet Get-ACSEvent to help file."
+"Microsoft.Azure.Commands.Compute.dll","Microsoft.Azure.Commands.Compute.dll-Help.xml","Microsoft.Azure.Commands.Compute.GetAzureRmVMAEMExtension","1","6050","Help missing for cmdlet Get-AzureRmVMAEMExtension implemented by class Microsoft.Azure.Commands.Compute.GetAzureRmVMAEMExtension","Add Help record for cmdlet Get-AzureRmVMAEMExtension to help file."
+"Microsoft.Azure.Commands.Compute.dll","Microsoft.Azure.Commands.Compute.dll-Help.xml","Microsoft.Azure.Commands.Compute.RemoveAzureRmVMAEMExtension","1","6050","Help missing for cmdlet Remove-AzureRmVMAEMExtension implemented by class Microsoft.Azure.Commands.Compute.RemoveAzureRmVMAEMExtension","Add Help record for cmdlet Remove-AzureRmVMAEMExtension to help file."
+"Microsoft.Azure.Commands.Compute.dll","Microsoft.Azure.Commands.Compute.dll-Help.xml","Microsoft.Azure.Commands.Compute.SetAzureRmVMAEMExtension","1","6050","Help missing for cmdlet Set-AzureRmVMAEMExtension implemented by class Microsoft.Azure.Commands.Compute.SetAzureRmVMAEMExtension","Add Help record for cmdlet Set-AzureRmVMAEMExtension to help file."
+"Microsoft.Azure.Commands.Compute.dll","Microsoft.Azure.Commands.Compute.dll-Help.xml","Microsoft.Azure.Commands.Compute.TestAzureRmVMAEMExtension","1","6050","Help missing for cmdlet Test-AzureRmVMAEMExtension implemented by class Microsoft.Azure.Commands.Compute.TestAzureRmVMAEMExtension","Add Help record for cmdlet Test-AzureRmVMAEMExtension to help file."
+"Microsoft.Azure.Commands.Compute.dll","Microsoft.Azure.Commands.Compute.dll-Help.xml","Microsoft.Azure.Commands.Compute.SetAzureVMBGInfoExtensionCommand","1","6050","Help missing for cmdlet Set-AzureRmVMBginfoExtension implemented by class Microsoft.Azure.Commands.Compute.SetAzureVMBGInfoExtensionCommand","Add Help record for cmdlet Set-AzureRmVMBginfoExtension to help file."
+"Microsoft.Azure.Commands.Compute.dll","Microsoft.Azure.Commands.Compute.dll-Help.xml","Microsoft.Azure.Commands.Compute.SetAzureVMPlanCommand","1","6050","Help missing for cmdlet Set-AzureRmVMPlan implemented by class Microsoft.Azure.Commands.Compute.SetAzureVMPlanCommand","Add Help record for cmdlet Set-AzureRmVMPlan to help file."
+"Microsoft.Azure.Commands.Management.Storage.dll","Microsoft.Azure.Commands.Management.Storage.dll-Help.xml","Microsoft.Azure.Commands.Management.Storage.SetAzureRmCurrentStorageAccount","1","6050","Help missing for cmdlet Set-AzureRmCurrentStorageAccount implemented by class Microsoft.Azure.Commands.Management.Storage.SetAzureRmCurrentStorageAccount","Add Help record for cmdlet Set-AzureRmCurrentStorageAccount to help file."
+"Microsoft.Azure.Commands.Network.dll","Microsoft.Azure.Commands.Network.dll-Help.xml","Microsoft.Azure.Commands.Network.NewAzureApplicationGatewayPathRuleConfigCommand","1","6050","Help missing for cmdlet New-AzureRmApplicationGatewayPathRuleConfig implemented by class Microsoft.Azure.Commands.Network.NewAzureApplicationGatewayPathRuleConfigCommand","Add Help record for cmdlet New-AzureRmApplicationGatewayPathRuleConfig to help file."
+"Microsoft.Azure.Commands.Network.dll","Microsoft.Azure.Commands.Network.dll-Help.xml","Microsoft.Azure.Commands.Network.AddAzureApplicationGatewayProbeConfigCommand","1","6050","Help missing for cmdlet Add-AzureRmApplicationGatewayProbeConfig implemented by class Microsoft.Azure.Commands.Network.AddAzureApplicationGatewayProbeConfigCommand","Add Help record for cmdlet Add-AzureRmApplicationGatewayProbeConfig to help file."
+"Microsoft.Azure.Commands.Network.dll","Microsoft.Azure.Commands.Network.dll-Help.xml","Microsoft.Azure.Commands.Network.GetAzureApplicationGatewayProbeConfigCommand","1","6050","Help missing for cmdlet Get-AzureRmApplicationGatewayProbeConfig implemented by class Microsoft.Azure.Commands.Network.GetAzureApplicationGatewayProbeConfigCommand","Add Help record for cmdlet Get-AzureRmApplicationGatewayProbeConfig to help file."
+"Microsoft.Azure.Commands.Network.dll","Microsoft.Azure.Commands.Network.dll-Help.xml","Microsoft.Azure.Commands.Network.NewAzureApplicationGatewayProbeConfigCommand","1","6050","Help missing for cmdlet New-AzureRmApplicationGatewayProbeConfig implemented by class Microsoft.Azure.Commands.Network.NewAzureApplicationGatewayProbeConfigCommand","Add Help record for cmdlet New-AzureRmApplicationGatewayProbeConfig to help file."
+"Microsoft.Azure.Commands.Network.dll","Microsoft.Azure.Commands.Network.dll-Help.xml","Microsoft.Azure.Commands.Network.RemoveAzureApplicationGatewayProbeConfigCommand","1","6050","Help missing for cmdlet Remove-AzureRmApplicationGatewayProbeConfig implemented by class Microsoft.Azure.Commands.Network.RemoveAzureApplicationGatewayProbeConfigCommand","Add Help record for cmdlet Remove-AzureRmApplicationGatewayProbeConfig to help file."
+"Microsoft.Azure.Commands.Network.dll","Microsoft.Azure.Commands.Network.dll-Help.xml","Microsoft.Azure.Commands.Network.SetAzureApplicationGatewayProbeConfigCommand","1","6050","Help missing for cmdlet Set-AzureRmApplicationGatewayProbeConfig implemented by class Microsoft.Azure.Commands.Network.SetAzureApplicationGatewayProbeConfigCommand","Add Help record for cmdlet Set-AzureRmApplicationGatewayProbeConfig to help file."
+"Microsoft.Azure.Commands.Network.dll","Microsoft.Azure.Commands.Network.dll-Help.xml","Microsoft.Azure.Commands.Network.AddAzureApplicationGatewayUrlPathMapConfigCommand","1","6050","Help missing for cmdlet Add-AzureRmApplicationGatewayUrlPathMapConfig implemented by class Microsoft.Azure.Commands.Network.AddAzureApplicationGatewayUrlPathMapConfigCommand","Add Help record for cmdlet Add-AzureRmApplicationGatewayUrlPathMapConfig to help file."
+"Microsoft.Azure.Commands.Network.dll","Microsoft.Azure.Commands.Network.dll-Help.xml","Microsoft.Azure.Commands.Network.GetAzureApplicationGatewayUrlPathMapConfigCommand","1","6050","Help missing for cmdlet Get-AzureRmApplicationGatewayUrlPathMapConfig implemented by class Microsoft.Azure.Commands.Network.GetAzureApplicationGatewayUrlPathMapConfigCommand","Add Help record for cmdlet Get-AzureRmApplicationGatewayUrlPathMapConfig to help file."
+"Microsoft.Azure.Commands.Network.dll","Microsoft.Azure.Commands.Network.dll-Help.xml","Microsoft.Azure.Commands.Network.NewAzureApplicationGatewayUrlPathMapConfigCommand","1","6050","Help missing for cmdlet New-AzureRmApplicationGatewayUrlPathMapConfig implemented by class Microsoft.Azure.Commands.Network.NewAzureApplicationGatewayUrlPathMapConfigCommand","Add Help record for cmdlet New-AzureRmApplicationGatewayUrlPathMapConfig to help file."
+"Microsoft.Azure.Commands.Network.dll","Microsoft.Azure.Commands.Network.dll-Help.xml","Microsoft.Azure.Commands.Network.RemoveAzureApplicationGatewayUrlPathMapConfigCommand","1","6050","Help missing for cmdlet Remove-AzureRmApplicationGatewayUrlPathMapConfig implemented by class Microsoft.Azure.Commands.Network.RemoveAzureApplicationGatewayUrlPathMapConfigCommand","Add Help record for cmdlet Remove-AzureRmApplicationGatewayUrlPathMapConfig to help file."
+"Microsoft.Azure.Commands.Network.dll","Microsoft.Azure.Commands.Network.dll-Help.xml","Microsoft.Azure.Commands.Network.SetAzureApplicationGatewayUrlPathMapConfigCommand","1","6050","Help missing for cmdlet Set-AzureRmApplicationGatewayUrlPathMapConfig implemented by class Microsoft.Azure.Commands.Network.SetAzureApplicationGatewayUrlPathMapConfigCommand","Add Help record for cmdlet Set-AzureRmApplicationGatewayUrlPathMapConfig to help file."
+"Microsoft.Azure.Commands.Network.dll","Microsoft.Azure.Commands.Network.dll-Help.xml","Microsoft.Azure.Commands.Network.AddAzureExpressRouteCircuitAuthorizationCommand","1","6050","Help missing for cmdlet Add-AzureRmExpressRouteCircuitAuthorization implemented by class Microsoft.Azure.Commands.Network.AddAzureExpressRouteCircuitAuthorizationCommand","Add Help record for cmdlet Add-AzureRmExpressRouteCircuitAuthorization to help file."
+"Microsoft.Azure.Commands.Network.dll","Microsoft.Azure.Commands.Network.dll-Help.xml","Microsoft.Azure.Commands.Network.GetAzureExpressRouteCircuitAuthorizationCommand","1","6050","Help missing for cmdlet Get-AzureRmExpressRouteCircuitAuthorization implemented by class Microsoft.Azure.Commands.Network.GetAzureExpressRouteCircuitAuthorizationCommand","Add Help record for cmdlet Get-AzureRmExpressRouteCircuitAuthorization to help file."
+"Microsoft.Azure.Commands.Network.dll","Microsoft.Azure.Commands.Network.dll-Help.xml","Microsoft.Azure.Commands.Network.NewAzureExpressRouteCircuitAuthorizationCommand","1","6050","Help missing for cmdlet New-AzureRmExpressRouteCircuitAuthorization implemented by class Microsoft.Azure.Commands.Network.NewAzureExpressRouteCircuitAuthorizationCommand","Add Help record for cmdlet New-AzureRmExpressRouteCircuitAuthorization to help file."
+"Microsoft.Azure.Commands.Network.dll","Microsoft.Azure.Commands.Network.dll-Help.xml","Microsoft.Azure.Commands.Network.RemoveAzureExpressRouteCircuitAuthorizationCommand","1","6050","Help missing for cmdlet Remove-AzureRmExpressRouteCircuitAuthorization implemented by class Microsoft.Azure.Commands.Network.RemoveAzureExpressRouteCircuitAuthorizationCommand","Add Help record for cmdlet Remove-AzureRmExpressRouteCircuitAuthorization to help file."
+"Microsoft.Azure.Commands.Network.dll","Microsoft.Azure.Commands.Network.dll-Help.xml","Microsoft.Azure.Commands.Network.GetAzureVpnClientRootCertificates","1","6050","Help missing for cmdlet Get-AzureRmVpnClientRootCertificate implemented by class Microsoft.Azure.Commands.Network.GetAzureVpnClientRootCertificates","Add Help record for cmdlet Get-AzureRmVpnClientRootCertificate to help file."
+"Microsoft.Azure.Commands.Network.dll","Microsoft.Azure.Commands.Network.dll-Help.xml","Microsoft.Azure.Commands.Network.GetAzureVpnClientRevokedCertificates","1","6050","Help missing for cmdlet Get-AzureRmVpnClientRevokedCertificate implemented by class Microsoft.Azure.Commands.Network.GetAzureVpnClientRevokedCertificates","Add Help record for cmdlet Get-AzureRmVpnClientRevokedCertificate to help file."
+"Microsoft.Azure.Commands.Network.dll","Microsoft.Azure.Commands.Network.dll-Help.xml","Microsoft.Azure.Commands.Network.AddAzureVpnClientRootCertificateCommand","1","6050","Help missing for cmdlet Add-AzureRmVpnClientRootCertificate implemented by class Microsoft.Azure.Commands.Network.AddAzureVpnClientRootCertificateCommand","Add Help record for cmdlet Add-AzureRmVpnClientRootCertificate to help file."
+"Microsoft.Azure.Commands.Network.dll","Microsoft.Azure.Commands.Network.dll-Help.xml","Microsoft.Azure.Commands.Network.AddAzureVpnClientRevokedCertificateCommand","1","6050","Help missing for cmdlet Add-AzureRmVpnClientRevokedCertificate implemented by class Microsoft.Azure.Commands.Network.AddAzureVpnClientRevokedCertificateCommand","Add Help record for cmdlet Add-AzureRmVpnClientRevokedCertificate to help file."
+"Microsoft.Azure.Commands.Network.dll","Microsoft.Azure.Commands.Network.dll-Help.xml","Microsoft.Azure.Commands.Network.NewAzureVpnClientRootCertificateCommand","1","6050","Help missing for cmdlet New-AzureRmVpnClientRootCertificate implemented by class Microsoft.Azure.Commands.Network.NewAzureVpnClientRootCertificateCommand","Add Help record for cmdlet New-AzureRmVpnClientRootCertificate to help file."
+"Microsoft.Azure.Commands.Network.dll","Microsoft.Azure.Commands.Network.dll-Help.xml","Microsoft.Azure.Commands.Network.NewAzureVpnClientRevokedCertificateCommand","1","6050","Help missing for cmdlet New-AzureRmVpnClientRevokedCertificate implemented by class Microsoft.Azure.Commands.Network.NewAzureVpnClientRevokedCertificateCommand","Add Help record for cmdlet New-AzureRmVpnClientRevokedCertificate to help file."
+"Microsoft.Azure.Commands.Network.dll","Microsoft.Azure.Commands.Network.dll-Help.xml","Microsoft.Azure.Commands.Network.ResizeAzureVirtualNetworkGatewayCommand","1","6050","Help missing for cmdlet Resize-AzureRmVirtualNetworkGateway implemented by class Microsoft.Azure.Commands.Network.ResizeAzureVirtualNetworkGatewayCommand","Add Help record for cmdlet Resize-AzureRmVirtualNetworkGateway to help file."
+"Microsoft.Azure.Commands.Network.dll","Microsoft.Azure.Commands.Network.dll-Help.xml","Microsoft.Azure.Commands.Network.RemoveAzureVpnClientRevokedCertificateCommand","1","6050","Help missing for cmdlet Remove-AzureRmVpnClientRevokedCertificate implemented by class Microsoft.Azure.Commands.Network.RemoveAzureVpnClientRevokedCertificateCommand","Add Help record for cmdlet Remove-AzureRmVpnClientRevokedCertificate to help file."
+"Microsoft.Azure.Commands.Network.dll","Microsoft.Azure.Commands.Network.dll-Help.xml","Microsoft.Azure.Commands.Network.RemoveAzureVpnClientRootCertificateCommand","1","6050","Help missing for cmdlet Remove-AzureRmVpnClientRootCertificate implemented by class Microsoft.Azure.Commands.Network.RemoveAzureVpnClientRootCertificateCommand","Add Help record for cmdlet Remove-AzureRmVpnClientRootCertificate to help file."
+"Microsoft.Azure.Commands.Network.dll","Microsoft.Azure.Commands.Network.dll-Help.xml","Microsoft.Azure.Commands.Network.SetAzureVirtualNetworkGatewayVpnClientConfigCommand","1","6050","Help missing for cmdlet Set-AzureRmVirtualNetworkGatewayVpnClientConfig implemented by class Microsoft.Azure.Commands.Network.SetAzureVirtualNetworkGatewayVpnClientConfigCommand","Add Help record for cmdlet Set-AzureRmVirtualNetworkGatewayVpnClientConfig to help file."
+"Microsoft.Azure.Commands.Network.dll","Microsoft.Azure.Commands.Network.dll-Help.xml","Microsoft.Azure.Commands.Network.GetAzureVpnClientPackage","1","6050","Help missing for cmdlet Get-AzureRmVpnClientPackage implemented by class Microsoft.Azure.Commands.Network.GetAzureVpnClientPackage","Add Help record for cmdlet Get-AzureRmVpnClientPackage to help file."
+"Microsoft.Azure.Commands.Network.dll","Microsoft.Azure.Commands.Network.dll-Help.xml","Microsoft.Azure.Commands.Network.SetAzureVirtualNetworkGatewayDefaultSiteCommand","1","6050","Help missing for cmdlet Set-AzureRmVirtualNetworkGatewayDefaultSite implemented by class Microsoft.Azure.Commands.Network.SetAzureVirtualNetworkGatewayDefaultSiteCommand","Add Help record for cmdlet Set-AzureRmVirtualNetworkGatewayDefaultSite to help file."
+"Microsoft.Azure.Commands.Network.dll","Microsoft.Azure.Commands.Network.dll-Help.xml","Microsoft.Azure.Commands.Network.RemoveAzureVirtualNetworkGatewayDefaultSiteCommand","1","6050","Help missing for cmdlet Remove-AzureRmVirtualNetworkGatewayDefaultSite implemented by class Microsoft.Azure.Commands.Network.RemoveAzureVirtualNetworkGatewayDefaultSiteCommand","Add Help record for cmdlet Remove-AzureRmVirtualNetworkGatewayDefaultSite to help file."
+"Microsoft.Azure.Commands.Resources.dll","Microsoft.Azure.Commands.Resources.dll-Help.xml","Microsoft.Azure.Commands.ActiveDirectory.GetAzureADApplicationCommand","1","6050","Help missing for cmdlet Get-AzureRmADApplication implemented by class Microsoft.Azure.Commands.ActiveDirectory.GetAzureADApplicationCommand","Add Help record for cmdlet Get-AzureRmADApplication to help file."
+"Microsoft.Azure.Commands.DataLakeStore.dll","Microsoft.Azure.Commands.DataLakeStore.dll-help.xml","Microsoft.Azure.Commands.DataLakeStore.AddAzureDataLakeStoreItemContent","1","6050","Help missing for cmdlet Add-AzureRmDataLakeStoreItemContent implemented by class Microsoft.Azure.Commands.DataLakeStore.AddAzureDataLakeStoreItemContent","Add Help record for cmdlet Add-AzureRmDataLakeStoreItemContent to help file."
+"Microsoft.Azure.Commands.OperationalInsights.dll","Microsoft.Azure.Commands.OperationalInsights.dll-Help.xml","Microsoft.Azure.Commands.OperationalInsights.GetAzureOperationalInsightsSavedSearchCommand","1","6050","Help missing for cmdlet Get-AzureRmOperationalInsightsSavedSearch implemented by class Microsoft.Azure.Commands.OperationalInsights.GetAzureOperationalInsightsSavedSearchCommand","Add Help record for cmdlet Get-AzureRmOperationalInsightsSavedSearch to help file."
+"Microsoft.Azure.Commands.OperationalInsights.dll","Microsoft.Azure.Commands.OperationalInsights.dll-Help.xml","Microsoft.Azure.Commands.OperationalInsights.GetAzureOperationalInsightsSavedSearchResultsCommand","1","6050","Help missing for cmdlet Get-AzureRmOperationalInsightsSavedSearchResults implemented by class Microsoft.Azure.Commands.OperationalInsights.GetAzureOperationalInsightsSavedSearchResultsCommand","Add Help record for cmdlet Get-AzureRmOperationalInsightsSavedSearchResults to help file."
+"Microsoft.Azure.Commands.OperationalInsights.dll","Microsoft.Azure.Commands.OperationalInsights.dll-Help.xml","Microsoft.Azure.Commands.OperationalInsights.GetAzureOperationalInsightsSchemaCommand","1","6050","Help missing for cmdlet Get-AzureRmOperationalInsightsSchema implemented by class Microsoft.Azure.Commands.OperationalInsights.GetAzureOperationalInsightsSchemaCommand","Add Help record for cmdlet Get-AzureRmOperationalInsightsSchema to help file."
+"Microsoft.Azure.Commands.OperationalInsights.dll","Microsoft.Azure.Commands.OperationalInsights.dll-Help.xml","Microsoft.Azure.Commands.OperationalInsights.GetAzureOperationalInsightsSearchResultsCommand","1","6050","Help missing for cmdlet Get-AzureRmOperationalInsightsSearchResults implemented by class Microsoft.Azure.Commands.OperationalInsights.GetAzureOperationalInsightsSearchResultsCommand","Add Help record for cmdlet Get-AzureRmOperationalInsightsSearchResults to help file."
+"Microsoft.Azure.Commands.OperationalInsights.dll","Microsoft.Azure.Commands.OperationalInsights.dll-Help.xml","Microsoft.Azure.Commands.OperationalInsights.NewAzureOperationalInsightsSavedSearchCommand","1","6050","Help missing for cmdlet New-AzureRmOperationalInsightsSavedSearch implemented by class Microsoft.Azure.Commands.OperationalInsights.NewAzureOperationalInsightsSavedSearchCommand","Add Help record for cmdlet New-AzureRmOperationalInsightsSavedSearch to help file."
+"Microsoft.Azure.Commands.OperationalInsights.dll","Microsoft.Azure.Commands.OperationalInsights.dll-Help.xml","Microsoft.Azure.Commands.OperationalInsights.SetAzureOperationalInsightsSavedSearchCommand","1","6050","Help missing for cmdlet Set-AzureRmOperationalInsightsSavedSearch implemented by class Microsoft.Azure.Commands.OperationalInsights.SetAzureOperationalInsightsSavedSearchCommand","Add Help record for cmdlet Set-AzureRmOperationalInsightsSavedSearch to help file."
+"Microsoft.Azure.Commands.OperationalInsights.dll","Microsoft.Azure.Commands.OperationalInsights.dll-Help.xml","Microsoft.Azure.Commands.OperationalInsights.RemoveAzureOperationalInsightsSavedSearchCommand","1","6050","Help missing for cmdlet Remove-AzureRmOperationalInsightsSavedSearch implemented by class Microsoft.Azure.Commands.OperationalInsights.RemoveAzureOperationalInsightsSavedSearchCommand","Add Help record for cmdlet Remove-AzureRmOperationalInsightsSavedSearch to help file."
+"Microsoft.Azure.Commands.Sql.dll","Microsoft.Azure.Commands.Sql.dll-Help.xml","Microsoft.Azure.Commands.Sql.ServerDisasterRecoveryConfiguration.Cmdlet.GetAzureSqlServerDisasterRecoveryConfiguration","1","6050","Help missing for cmdlet Get-AzureRmSqlServerDisasterRecoveryConfiguration implemented by class Microsoft.Azure.Commands.Sql.ServerDisasterRecoveryConfiguration.Cmdlet.GetAzureSqlServerDisasterRecoveryConfiguration","Add Help record for cmdlet Get-AzureRmSqlServerDisasterRecoveryConfiguration to help file."
+"Microsoft.Azure.Commands.Sql.dll","Microsoft.Azure.Commands.Sql.dll-Help.xml","Microsoft.Azure.Commands.Sql.ServerDisasterRecoveryConfiguration.Cmdlet.GetAzureSqlServerDisasterRecoveryConfigurationActivity","1","6050","Help missing for cmdlet Get-AzureRmSqlServerDisasterRecoveryConfigurationActivity implemented by class Microsoft.Azure.Commands.Sql.ServerDisasterRecoveryConfiguration.Cmdlet.GetAzureSqlServerDisasterRecoveryConfigurationActivity","Add Help record for cmdlet Get-AzureRmSqlServerDisasterRecoveryConfigurationActivity to help file."
+"Microsoft.Azure.Commands.Sql.dll","Microsoft.Azure.Commands.Sql.dll-Help.xml","Microsoft.Azure.Commands.Sql.ServerDisasterRecoveryConfiguration.Cmdlet.NewAzureSqlServerDisasterRecoveryConfiguration","1","6050","Help missing for cmdlet New-AzureRmSqlServerDisasterRecoveryConfiguration implemented by class Microsoft.Azure.Commands.Sql.ServerDisasterRecoveryConfiguration.Cmdlet.NewAzureSqlServerDisasterRecoveryConfiguration","Add Help record for cmdlet New-AzureRmSqlServerDisasterRecoveryConfiguration to help file."
+"Microsoft.Azure.Commands.Sql.dll","Microsoft.Azure.Commands.Sql.dll-Help.xml","Microsoft.Azure.Commands.Sql.ServerDisasterRecoveryConfiguration.Cmdlet.RemoveAzureSqlServerDisasterRecoveryConfiguration","1","6050","Help missing for cmdlet Remove-AzureRmSqlServerDisasterRecoveryConfiguration implemented by class Microsoft.Azure.Commands.Sql.ServerDisasterRecoveryConfiguration.Cmdlet.RemoveAzureSqlServerDisasterRecoveryConfiguration","Add Help record for cmdlet Remove-AzureRmSqlServerDisasterRecoveryConfiguration to help file."
+"Microsoft.Azure.Commands.Sql.dll","Microsoft.Azure.Commands.Sql.dll-Help.xml","Microsoft.Azure.Commands.Sql.ServerDisasterRecoveryConfiguration.Cmdlet.SetAzureSqlServerDisasterRecoveryConfiguration","1","6050","Help missing for cmdlet Set-AzureRmSqlServerDisasterRecoveryConfiguration implemented by class Microsoft.Azure.Commands.Sql.ServerDisasterRecoveryConfiguration.Cmdlet.SetAzureSqlServerDisasterRecoveryConfiguration","Add Help record for cmdlet Set-AzureRmSqlServerDisasterRecoveryConfiguration to help file."
+"Microsoft.Azure.Commands.TrafficManager.dll","Microsoft.Azure.Commands.TrafficManager.dll-help.xml","Microsoft.Azure.Commands.TrafficManager.DisableAzureTrafficManagerEndpoint","1","6050","Help missing for cmdlet Disable-AzureRmTrafficManagerEndpoint implemented by class Microsoft.Azure.Commands.TrafficManager.DisableAzureTrafficManagerEndpoint","Add Help record for cmdlet Disable-AzureRmTrafficManagerEndpoint to help file."
+"Microsoft.Azure.Commands.TrafficManager.dll","Microsoft.Azure.Commands.TrafficManager.dll-help.xml","Microsoft.Azure.Commands.TrafficManager.EnableAzureTrafficManagerEndpoint","1","6050","Help missing for cmdlet Enable-AzureRmTrafficManagerEndpoint implemented by class Microsoft.Azure.Commands.TrafficManager.EnableAzureTrafficManagerEndpoint","Add Help record for cmdlet Enable-AzureRmTrafficManagerEndpoint to help file."
+"Microsoft.Azure.Commands.TrafficManager.dll","Microsoft.Azure.Commands.TrafficManager.dll-help.xml","Microsoft.Azure.Commands.TrafficManager.SetAzureTrafficManagerEndpoint","1","6050","Help missing for cmdlet Set-AzureRmTrafficManagerEndpoint implemented by class Microsoft.Azure.Commands.TrafficManager.SetAzureTrafficManagerEndpoint","Add Help record for cmdlet Set-AzureRmTrafficManagerEndpoint to help file."
+"Microsoft.Azure.Commands.TrafficManager.dll","Microsoft.Azure.Commands.TrafficManager.dll-help.xml","Microsoft.Azure.Commands.TrafficManager.GetAzureTrafficManagerEndpoint","1","6050","Help missing for cmdlet Get-AzureRmTrafficManagerEndpoint implemented by class Microsoft.Azure.Commands.TrafficManager.GetAzureTrafficManagerEndpoint","Add Help record for cmdlet Get-AzureRmTrafficManagerEndpoint to help file."
+"Microsoft.Azure.Commands.TrafficManager.dll","Microsoft.Azure.Commands.TrafficManager.dll-help.xml","Microsoft.Azure.Commands.TrafficManager.RemoveAzureTrafficManagerEndpoint","1","6050","Help missing for cmdlet Remove-AzureRmTrafficManagerEndpoint implemented by class Microsoft.Azure.Commands.TrafficManager.RemoveAzureTrafficManagerEndpoint","Add Help record for cmdlet Remove-AzureRmTrafficManagerEndpoint to help file."
+"Microsoft.Azure.Commands.TrafficManager.dll","Microsoft.Azure.Commands.TrafficManager.dll-help.xml","Microsoft.Azure.Commands.TrafficManager.NewAzureTrafficManagerEndpoint","1","6050","Help missing for cmdlet New-AzureRmTrafficManagerEndpoint implemented by class Microsoft.Azure.Commands.TrafficManager.NewAzureTrafficManagerEndpoint","Add Help record for cmdlet New-AzureRmTrafficManagerEndpoint to help file."
+"Microsoft.Azure.Commands.TrafficManager.dll","Microsoft.Azure.Commands.TrafficManager.dll-help.xml","Microsoft.Azure.Commands.TrafficManager.DisableAzureTrafficManagerProfile","1","6050","Help missing for cmdlet Disable-AzureRmTrafficManagerProfile implemented by class Microsoft.Azure.Commands.TrafficManager.DisableAzureTrafficManagerProfile","Add Help record for cmdlet Disable-AzureRmTrafficManagerProfile to help file."
+"Microsoft.Azure.Commands.TrafficManager.dll","Microsoft.Azure.Commands.TrafficManager.dll-help.xml","Microsoft.Azure.Commands.TrafficManager.EnableAzureTrafficManagerProfile","1","6050","Help missing for cmdlet Enable-AzureRmTrafficManagerProfile implemented by class Microsoft.Azure.Commands.TrafficManager.EnableAzureTrafficManagerProfile","Add Help record for cmdlet Enable-AzureRmTrafficManagerProfile to help file."
+"Microsoft.Azure.Commands.Automation.dll","Microsoft.Azure.Commands.Automation.dll-help.xml","Microsoft.Azure.Commands.Automation.Cmdlet.RemoveAzureAutomationConnection","1","6050","Help missing for cmdlet Remove-AzureAutomationConnection implemented by class Microsoft.Azure.Commands.Automation.Cmdlet.RemoveAzureAutomationConnection","Add Help record for cmdlet Remove-AzureAutomationConnection to help file."
+"Microsoft.Azure.Commands.Automation.dll","Microsoft.Azure.Commands.Automation.dll-help.xml","Microsoft.Azure.Commands.Automation.Cmdlet.RemoveAzureAutomationConnectionType","1","6050","Help missing for cmdlet Remove-AzureAutomationConnectionType implemented by class Microsoft.Azure.Commands.Automation.Cmdlet.RemoveAzureAutomationConnectionType","Add Help record for cmdlet Remove-AzureAutomationConnectionType to help file."
+"Microsoft.Azure.Commands.Automation.dll","Microsoft.Azure.Commands.Automation.dll-help.xml","Microsoft.Azure.Commands.Automation.Cmdlet.SetAzureAutomationConnectionFieldValue","1","6050","Help missing for cmdlet Set-AzureAutomationConnectionFieldValue implemented by class Microsoft.Azure.Commands.Automation.Cmdlet.SetAzureAutomationConnectionFieldValue","Add Help record for cmdlet Set-AzureAutomationConnectionFieldValue to help file."
+"Microsoft.WindowsAzure.Commands.ServiceManagement.dll","Microsoft.WindowsAzure.Commands.ServiceManagement.dll-Help.xml","Microsoft.WindowsAzure.Commands.ServiceManagement.IaaS.Extensions.NewAzureVMSqlServerKeyVaultCredentialConfigCommand","1","6050","Help missing for cmdlet New-AzureVMSqlServerKeyVaultCredentialConfig implemented by class Microsoft.WindowsAzure.Commands.ServiceManagement.IaaS.Extensions.NewAzureVMSqlServerKeyVaultCredentialConfigCommand","Add Help record for cmdlet New-AzureVMSqlServerKeyVaultCredentialConfig to help file."
+"Microsoft.WindowsAzure.Commands.ServiceManagement.dll","Microsoft.WindowsAzure.Commands.ServiceManagement.dll-Help.xml","Microsoft.WindowsAzure.Commands.ServiceManagement.IaaS.SetAzureBootDiagnosticsCommand","1","6050","Help missing for cmdlet Set-AzureBootDiagnostics implemented by class Microsoft.WindowsAzure.Commands.ServiceManagement.IaaS.SetAzureBootDiagnosticsCommand","Add Help record for cmdlet Set-AzureBootDiagnostics to help file."
+"Microsoft.WindowsAzure.Commands.ServiceManagement.PlatformImageRepository.dll","Microsoft.WindowsAzure.Commands.ServiceManagement.PlatformImageRepository.dll-Help.xml","Microsoft.WindowsAzure.Commands.ServiceManagement.Extensions.GetAzureServiceAvailableExtensionCommand","1","6050","Help missing for cmdlet Get-AzurePlatformExtension implemented by class Microsoft.WindowsAzure.Commands.ServiceManagement.Extensions.GetAzureServiceAvailableExtensionCommand","Add Help record for cmdlet Get-AzurePlatformExtension to help file."
+"Microsoft.WindowsAzure.Commands.ServiceManagement.PlatformImageRepository.dll","Microsoft.WindowsAzure.Commands.ServiceManagement.PlatformImageRepository.dll-Help.xml","Microsoft.WindowsAzure.Commands.ServiceManagement.PlatformImageRepository.ImagePublishing.NewAzurePlatformMarketplaceImageConfig","1","6050","Help missing for cmdlet New-AzurePlatformMarketplaceImageConfig implemented by class Microsoft.WindowsAzure.Commands.ServiceManagement.PlatformImageRepository.ImagePublishing.NewAzurePlatformMarketplaceImageConfig","Add Help record for cmdlet New-AzurePlatformMarketplaceImageConfig to help file."
+"Microsoft.WindowsAzure.Commands.ServiceManagement.PlatformImageRepository.dll","Microsoft.WindowsAzure.Commands.ServiceManagement.PlatformImageRepository.dll-Help.xml","Microsoft.WindowsAzure.Commands.ServiceManagement.PlatformImageRepository.ImagePublishing.NewAzurePlatformComputeImageConfig","1","6050","Help missing for cmdlet New-AzurePlatformComputeImageConfig implemented by class Microsoft.WindowsAzure.Commands.ServiceManagement.PlatformImageRepository.ImagePublishing.NewAzurePlatformComputeImageConfig","Add Help record for cmdlet New-AzurePlatformComputeImageConfig to help file."
+"Microsoft.WindowsAzure.Commands.ExpressRoute.dll","Microsoft.WindowsAzure.Commands.ExpressRoute.dll-Help.xml","Microsoft.WindowsAzure.Commands.ExpressRoute.GetAzureCrossConnectionCommand","1","6050","Help missing for cmdlet Get-AzureCrossConnection implemented by class Microsoft.WindowsAzure.Commands.ExpressRoute.GetAzureCrossConnectionCommand","Add Help record for cmdlet Get-AzureCrossConnection to help file."
+"Microsoft.WindowsAzure.Commands.ExpressRoute.dll","Microsoft.WindowsAzure.Commands.ExpressRoute.dll-Help.xml","Microsoft.WindowsAzure.Commands.ExpressRoute.NewAzureCrossConnectionCommand","1","6050","Help missing for cmdlet New-AzureCrossConnection implemented by class Microsoft.WindowsAzure.Commands.ExpressRoute.NewAzureCrossConnectionCommand","Add Help record for cmdlet New-AzureCrossConnection to help file."
+"Microsoft.WindowsAzure.Commands.ExpressRoute.dll","Microsoft.WindowsAzure.Commands.ExpressRoute.dll-Help.xml","Microsoft.WindowsAzure.Commands.ExpressRoute.SetAzureCrossConnectionCommand","1","6050","Help missing for cmdlet Set-AzureCrossConnection implemented by class Microsoft.WindowsAzure.Commands.ExpressRoute.SetAzureCrossConnectionCommand","Add Help record for cmdlet Set-AzureCrossConnection to help file."
+"Microsoft.WindowsAzure.Commands.ExpressRoute.dll","Microsoft.WindowsAzure.Commands.ExpressRoute.dll-Help.xml","Microsoft.WindowsAzure.Commands.ExpressRoute.GetAzureDedicatedCircuitPeeringArpInfoCommand","1","6050","Help missing for cmdlet Get-AzureDedicatedCircuitPeeringArpInfo implemented by class Microsoft.WindowsAzure.Commands.ExpressRoute.GetAzureDedicatedCircuitPeeringArpInfoCommand","Add Help record for cmdlet Get-AzureDedicatedCircuitPeeringArpInfo to help file."
+"Microsoft.WindowsAzure.Commands.ExpressRoute.dll","Microsoft.WindowsAzure.Commands.ExpressRoute.dll-Help.xml","Microsoft.WindowsAzure.Commands.ExpressRoute.GetAzureDedicatedCircuitPeeringRouteTableInfoCommand","1","6050","Help missing for cmdlet Get-AzureDedicatedCircuitPeeringRouteTableInfo implemented by class Microsoft.WindowsAzure.Commands.ExpressRoute.GetAzureDedicatedCircuitPeeringRouteTableInfoCommand","Add Help record for cmdlet Get-AzureDedicatedCircuitPeeringRouteTableInfo to help file."
+"Microsoft.WindowsAzure.Commands.ExpressRoute.dll","Microsoft.WindowsAzure.Commands.ExpressRoute.dll-Help.xml","Microsoft.WindowsAzure.Commands.ExpressRoute.GetAzureDedicatedCircuitPeeringRouteTableSummaryCommand","1","6050","Help missing for cmdlet Get-AzureDedicatedCircuitPeeringRouteTableSummary implemented by class Microsoft.WindowsAzure.Commands.ExpressRoute.GetAzureDedicatedCircuitPeeringRouteTableSummaryCommand","Add Help record for cmdlet Get-AzureDedicatedCircuitPeeringRouteTableSummary to help file."
+"Microsoft.WindowsAzure.Commands.ExpressRoute.dll","Microsoft.WindowsAzure.Commands.ExpressRoute.dll-Help.xml","Microsoft.WindowsAzure.Commands.ExpressRoute.GetAzureDedicatedCircuitPeeringStatsCommand","1","6050","Help missing for cmdlet Get-AzureDedicatedCircuitStats implemented by class Microsoft.WindowsAzure.Commands.ExpressRoute.GetAzureDedicatedCircuitPeeringStatsCommand","Add Help record for cmdlet Get-AzureDedicatedCircuitStats to help file."
+"Microsoft.WindowsAzure.Commands.ExpressRoute.dll","Microsoft.WindowsAzure.Commands.ExpressRoute.dll-Help.xml","Microsoft.WindowsAzure.Commands.ExpressRoute.SetAzureDedicatedCircuitPropertiesCommand","1","6050","Help missing for cmdlet Set-AzureDedicatedCircuitProperties implemented by class Microsoft.WindowsAzure.Commands.ExpressRoute.SetAzureDedicatedCircuitPropertiesCommand","Add Help record for cmdlet Set-AzureDedicatedCircuitProperties to help file."
+"Microsoft.WindowsAzure.Commands.HDInsight.dll","Microsoft.WindowsAzure.Commands.HDInsight.dll-Help.xml","Microsoft.WindowsAzure.Management.HDInsight.Cmdlet.PSCmdlets.AddAzureHDInsightScriptActionCmdlet","1","6050","Help missing for cmdlet Add-AzureHDInsightScriptAction implemented by class Microsoft.WindowsAzure.Management.HDInsight.Cmdlet.PSCmdlets.AddAzureHDInsightScriptActionCmdlet","Add Help record for cmdlet Add-AzureHDInsightScriptAction to help file."
+"Microsoft.WindowsAzure.Commands.HDInsight.dll","Microsoft.WindowsAzure.Commands.HDInsight.dll-Help.xml","Microsoft.WindowsAzure.Management.HDInsight.Cmdlet.PSCmdlets.GrantAzureHdinsightRdpAccessCmdlet","1","6050","Help missing for cmdlet Grant-AzureHDInsightRdpAccess implemented by class Microsoft.WindowsAzure.Management.HDInsight.Cmdlet.PSCmdlets.GrantAzureHdinsightRdpAccessCmdlet","Add Help record for cmdlet Grant-AzureHDInsightRdpAccess to help file."
+"Microsoft.WindowsAzure.Commands.HDInsight.dll","Microsoft.WindowsAzure.Commands.HDInsight.dll-Help.xml","Microsoft.WindowsAzure.Management.HDInsight.Cmdlet.PSCmdlets.RevokeAzureHDInsightRdpAccessCmdlet","1","6050","Help missing for cmdlet Revoke-AzureHDInsightRdpAccess implemented by class Microsoft.WindowsAzure.Management.HDInsight.Cmdlet.PSCmdlets.RevokeAzureHDInsightRdpAccessCmdlet","Add Help record for cmdlet Revoke-AzureHDInsightRdpAccess to help file."
+"Microsoft.WindowsAzure.Commands.HDInsight.dll","Microsoft.WindowsAzure.Commands.HDInsight.dll-Help.xml","Microsoft.WindowsAzure.Commands.HDInsight.Cmdlet.PSCmdlets.SetAzureHDInsightClusterSizeCmdlet","1","6050","Help missing for cmdlet Set-AzureHDInsightClusterSize implemented by class Microsoft.WindowsAzure.Commands.HDInsight.Cmdlet.PSCmdlets.SetAzureHDInsightClusterSizeCmdlet","Add Help record for cmdlet Set-AzureHDInsightClusterSize to help file."
+"Microsoft.Azure.Commands.ManagedCache.dll","Microsoft.Azure.Commands.ManagedCache.dll-help.xml","Microsoft.Azure.Commands.ManagedCache.AzureManagedCacheLocation","1","6050","Help missing for cmdlet Get-AzureManagedCacheLocation implemented by class Microsoft.Azure.Commands.ManagedCache.AzureManagedCacheLocation","Add Help record for cmdlet Get-AzureManagedCacheLocation to help file."
+"Microsoft.WindowsAzure.Commands.ServiceManagement.Network.dll","Microsoft.WindowsAzure.Commands.ServiceManagement.Network.dll-help.xml","Microsoft.WindowsAzure.Commands.ServiceManagement.Network.Gateway.GetAzureVirtualNetworkConnectionGateway","1","6050","Help missing for cmdlet Get-AzureVirtualNetworkGatewayConnection implemented by class Microsoft.WindowsAzure.Commands.ServiceManagement.Network.Gateway.GetAzureVirtualNetworkConnectionGateway","Add Help record for cmdlet Get-AzureVirtualNetworkGatewayConnection to help file."
+"Microsoft.WindowsAzure.Commands.ServiceManagement.Network.dll","Microsoft.WindowsAzure.Commands.ServiceManagement.Network.dll-help.xml","Microsoft.WindowsAzure.Commands.ServiceManagement.Network.Gateway.GetAzureVirtualNetworkGatewayDiagnostics","1","6050","Help missing for cmdlet Get-AzureVirtualNetworkGatewayDiagnostics implemented by class Microsoft.WindowsAzure.Commands.ServiceManagement.Network.Gateway.GetAzureVirtualNetworkGatewayDiagnostics","Add Help record for cmdlet Get-AzureVirtualNetworkGatewayDiagnostics to help file."
+"Microsoft.WindowsAzure.Commands.ServiceManagement.Network.dll","Microsoft.WindowsAzure.Commands.ServiceManagement.Network.dll-help.xml","Microsoft.WindowsAzure.Commands.ServiceManagement.Network.Gateway.GetAzureVirtualNetworkGatewayIPsecParameters","1","6050","Help missing for cmdlet Get-AzureVirtualNetworkGatewayIPsecParameters implemented by class Microsoft.WindowsAzure.Commands.ServiceManagement.Network.Gateway.GetAzureVirtualNetworkGatewayIPsecParameters","Add Help record for cmdlet Get-AzureVirtualNetworkGatewayIPsecParameters to help file."
+"Microsoft.WindowsAzure.Commands.ServiceManagement.Network.dll","Microsoft.WindowsAzure.Commands.ServiceManagement.Network.dll-help.xml","Microsoft.WindowsAzure.Commands.ServiceManagement.Network.Gateway.GetAzureVirtualNetworkGatewayKey","1","6050","Help missing for cmdlet Get-AzureVirtualNetworkGatewayKey implemented by class Microsoft.WindowsAzure.Commands.ServiceManagement.Network.Gateway.GetAzureVirtualNetworkGatewayKey","Add Help record for cmdlet Get-AzureVirtualNetworkGatewayKey to help file."
+"Microsoft.WindowsAzure.Commands.ServiceManagement.Network.dll","Microsoft.WindowsAzure.Commands.ServiceManagement.Network.dll-help.xml","Microsoft.WindowsAzure.Commands.ServiceManagement.Network.Gateway.NewAzureVirtualNetworkGatewayCommand","1","6050","Help missing for cmdlet New-AzureVirtualNetworkGateway implemented by class Microsoft.WindowsAzure.Commands.ServiceManagement.Network.Gateway.NewAzureVirtualNetworkGatewayCommand","Add Help record for cmdlet New-AzureVirtualNetworkGateway to help file."
+"Microsoft.WindowsAzure.Commands.ServiceManagement.Network.dll","Microsoft.WindowsAzure.Commands.ServiceManagement.Network.dll-help.xml","Microsoft.WindowsAzure.Commands.ServiceManagement.Network.Gateway.NewAzureVirtualNetworkGatewayConnectionCommand","1","6050","Help missing for cmdlet New-AzureVirtualNetworkGatewayConnection implemented by class Microsoft.WindowsAzure.Commands.ServiceManagement.Network.Gateway.NewAzureVirtualNetworkGatewayConnectionCommand","Add Help record for cmdlet New-AzureVirtualNetworkGatewayConnection to help file."
+"Microsoft.WindowsAzure.Commands.ServiceManagement.Network.dll","Microsoft.WindowsAzure.Commands.ServiceManagement.Network.dll-help.xml","Microsoft.WindowsAzure.Commands.ServiceManagement.Network.Gateway.ResetAzureVirtualNetworkGatewayKey","1","6050","Help missing for cmdlet Reset-AzureVirtualNetworkGatewayKey implemented by class Microsoft.WindowsAzure.Commands.ServiceManagement.Network.Gateway.ResetAzureVirtualNetworkGatewayKey","Add Help record for cmdlet Reset-AzureVirtualNetworkGatewayKey to help file."
+"Microsoft.WindowsAzure.Commands.ServiceManagement.Network.dll","Microsoft.WindowsAzure.Commands.ServiceManagement.Network.dll-help.xml","Microsoft.WindowsAzure.Commands.ServiceManagement.Network.Gateway.SetAzureVirtualNetworkGatewayIPsecParameters","1","6050","Help missing for cmdlet Set-AzureVirtualNetworkGatewayIPsecParameters implemented by class Microsoft.WindowsAzure.Commands.ServiceManagement.Network.Gateway.SetAzureVirtualNetworkGatewayIPsecParameters","Add Help record for cmdlet Set-AzureVirtualNetworkGatewayIPsecParameters to help file."
+"Microsoft.WindowsAzure.Commands.ServiceManagement.Network.dll","Microsoft.WindowsAzure.Commands.ServiceManagement.Network.dll-help.xml","Microsoft.WindowsAzure.Commands.ServiceManagement.Network.Gateway.SetAzureVirtualNetworkGatewayKey","1","6050","Help missing for cmdlet Set-AzureVirtualNetworkGatewayKey implemented by class Microsoft.WindowsAzure.Commands.ServiceManagement.Network.Gateway.SetAzureVirtualNetworkGatewayKey","Add Help record for cmdlet Set-AzureVirtualNetworkGatewayKey to help file."
+"Microsoft.WindowsAzure.Commands.ServiceManagement.Network.dll","Microsoft.WindowsAzure.Commands.ServiceManagement.Network.dll-help.xml","Microsoft.WindowsAzure.Commands.ServiceManagement.Network.Gateway.StartAzureVirtualNetworkGatewayDiagnostics","1","6050","Help missing for cmdlet Start-AzureVirtualNetworkGatewayDiagnostics implemented by class Microsoft.WindowsAzure.Commands.ServiceManagement.Network.Gateway.StartAzureVirtualNetworkGatewayDiagnostics","Add Help record for cmdlet Start-AzureVirtualNetworkGatewayDiagnostics to help file."
+"Microsoft.WindowsAzure.Commands.ServiceManagement.Network.dll","Microsoft.WindowsAzure.Commands.ServiceManagement.Network.dll-help.xml","Microsoft.WindowsAzure.Commands.ServiceManagement.Network.Gateway.StopAzureVirtualNetworkGatewayDiagnostics","1","6050","Help missing for cmdlet Stop-AzureVirtualNetworkGatewayDiagnostics implemented by class Microsoft.WindowsAzure.Commands.ServiceManagement.Network.Gateway.StopAzureVirtualNetworkGatewayDiagnostics","Add Help record for cmdlet Stop-AzureVirtualNetworkGatewayDiagnostics to help file."
+"Microsoft.WindowsAzure.Commands.ServiceManagement.Network.dll","Microsoft.WindowsAzure.Commands.ServiceManagement.Network.dll-help.xml","Microsoft.WindowsAzure.Commands.ServiceManagement.Network.Gateway.GetAzureLocalNetworkGateway","1","6050","Help missing for cmdlet Get-AzureLocalNetworkGateway implemented by class Microsoft.WindowsAzure.Commands.ServiceManagement.Network.Gateway.GetAzureLocalNetworkGateway","Add Help record for cmdlet Get-AzureLocalNetworkGateway to help file."
+"Microsoft.WindowsAzure.Commands.ServiceManagement.Network.dll","Microsoft.WindowsAzure.Commands.ServiceManagement.Network.dll-help.xml","Microsoft.WindowsAzure.Commands.ServiceManagement.Network.Gateway.GetAzureVirtualNetworkGateway","1","6050","Help missing for cmdlet Get-AzureVirtualNetworkGateway implemented by class Microsoft.WindowsAzure.Commands.ServiceManagement.Network.Gateway.GetAzureVirtualNetworkGateway","Add Help record for cmdlet Get-AzureVirtualNetworkGateway to help file."
+"Microsoft.WindowsAzure.Commands.ServiceManagement.Network.dll","Microsoft.WindowsAzure.Commands.ServiceManagement.Network.dll-help.xml","Microsoft.WindowsAzure.Commands.ServiceManagement.Network.Gateway.NewAzureLocalNetworkGateway","1","6050","Help missing for cmdlet New-AzureLocalNetworkGateway implemented by class Microsoft.WindowsAzure.Commands.ServiceManagement.Network.Gateway.NewAzureLocalNetworkGateway","Add Help record for cmdlet New-AzureLocalNetworkGateway to help file."
+"Microsoft.WindowsAzure.Commands.ServiceManagement.Network.dll","Microsoft.WindowsAzure.Commands.ServiceManagement.Network.dll-help.xml","Microsoft.WindowsAzure.Commands.ServiceManagement.Network.Gateway.RemoveAzureLocalNetworkGateway","1","6050","Help missing for cmdlet Remove-AzureLocalNetworkGateway implemented by class Microsoft.WindowsAzure.Commands.ServiceManagement.Network.Gateway.RemoveAzureLocalNetworkGateway","Add Help record for cmdlet Remove-AzureLocalNetworkGateway to help file."
+"Microsoft.WindowsAzure.Commands.ServiceManagement.Network.dll","Microsoft.WindowsAzure.Commands.ServiceManagement.Network.dll-help.xml","Microsoft.WindowsAzure.Commands.ServiceManagement.Network.Gateway.RemoveAzureVirtualNetworkGateway","1","6050","Help missing for cmdlet Remove-AzureVirtualNetworkGateway implemented by class Microsoft.WindowsAzure.Commands.ServiceManagement.Network.Gateway.RemoveAzureVirtualNetworkGateway","Add Help record for cmdlet Remove-AzureVirtualNetworkGateway to help file."
+"Microsoft.WindowsAzure.Commands.ServiceManagement.Network.dll","Microsoft.WindowsAzure.Commands.ServiceManagement.Network.dll-help.xml","Microsoft.WindowsAzure.Commands.ServiceManagement.Network.Gateway.RemoveAzureVirtualNetworkGatewayConnection","1","6050","Help missing for cmdlet Remove-AzureVirtualNetworkGatewayConnection implemented by class Microsoft.WindowsAzure.Commands.ServiceManagement.Network.Gateway.RemoveAzureVirtualNetworkGatewayConnection","Add Help record for cmdlet Remove-AzureVirtualNetworkGatewayConnection to help file."
+"Microsoft.WindowsAzure.Commands.ServiceManagement.Network.dll","Microsoft.WindowsAzure.Commands.ServiceManagement.Network.dll-help.xml","Microsoft.WindowsAzure.Commands.ServiceManagement.Network.Gateway.ResetAzureVirtualNetworkGateway","1","6050","Help missing for cmdlet Reset-AzureVirtualNetworkGateway implemented by class Microsoft.WindowsAzure.Commands.ServiceManagement.Network.Gateway.ResetAzureVirtualNetworkGateway","Add Help record for cmdlet Reset-AzureVirtualNetworkGateway to help file."
+"Microsoft.WindowsAzure.Commands.ServiceManagement.Network.dll","Microsoft.WindowsAzure.Commands.ServiceManagement.Network.dll-help.xml","Microsoft.WindowsAzure.Commands.ServiceManagement.Network.Gateway.ResizeAzureVirtualNetworkGateway","1","6050","Help missing for cmdlet Resize-AzureVirtualNetworkGateway implemented by class Microsoft.WindowsAzure.Commands.ServiceManagement.Network.Gateway.ResizeAzureVirtualNetworkGateway","Add Help record for cmdlet Resize-AzureVirtualNetworkGateway to help file."
+"Microsoft.WindowsAzure.Commands.ServiceManagement.Network.dll","Microsoft.WindowsAzure.Commands.ServiceManagement.Network.dll-help.xml","Microsoft.WindowsAzure.Commands.ServiceManagement.Network.Gateway.ResetAzureLocalNetworkGateway","1","6050","Help missing for cmdlet Reset-AzureLocalNetworkGateway implemented by class Microsoft.WindowsAzure.Commands.ServiceManagement.Network.Gateway.ResetAzureLocalNetworkGateway","Add Help record for cmdlet Reset-AzureLocalNetworkGateway to help file."
+"Microsoft.WindowsAzure.Commands.ServiceManagement.Network.dll","Microsoft.WindowsAzure.Commands.ServiceManagement.Network.dll-help.xml","Microsoft.WindowsAzure.Commands.ServiceManagement.Network.Gateway.ResetAzureVirtualNetworkGatewayConnection","1","6050","Help missing for cmdlet Reset-AzureVirtualNetworkGatewayConnection implemented by class Microsoft.WindowsAzure.Commands.ServiceManagement.Network.Gateway.ResetAzureVirtualNetworkGatewayConnection","Add Help record for cmdlet Reset-AzureVirtualNetworkGatewayConnection to help file."
+"Microsoft.WindowsAzure.Commands.ServiceManagement.Network.dll","Microsoft.WindowsAzure.Commands.ServiceManagement.Network.dll-help.xml","Microsoft.WindowsAzure.Commands.ServiceManagement.IaaS.GetAzureNetworkSecurityGroupConfigCommand","1","6050","Help missing for cmdlet Get-AzureNetworkSecurityGroupConfig implemented by class Microsoft.WindowsAzure.Commands.ServiceManagement.IaaS.GetAzureNetworkSecurityGroupConfigCommand","Add Help record for cmdlet Get-AzureNetworkSecurityGroupConfig to help file."
+"Microsoft.WindowsAzure.Commands.RemoteApp.dll","Microsoft.WindowsAzure.Commands.RemoteApp.dll-help.xml","Microsoft.WindowsAzure.Management.RemoteApp.Cmdlets.ClearAzureRemoteAppVmStaleAdObject","1","6050","Help missing for cmdlet Clear-AzureRemoteAppVmStaleAdObject implemented by class Microsoft.WindowsAzure.Management.RemoteApp.Cmdlets.ClearAzureRemoteAppVmStaleAdObject","Add Help record for cmdlet Clear-AzureRemoteAppVmStaleAdObject to help file."
+"Microsoft.WindowsAzure.Commands.RemoteApp.dll","Microsoft.WindowsAzure.Commands.RemoteApp.dll-help.xml","Microsoft.WindowsAzure.Management.RemoteApp.Cmdlets.GetAzureRemoteAppVm","1","6050","Help missing for cmdlet Get-AzureRemoteAppVM implemented by class Microsoft.WindowsAzure.Management.RemoteApp.Cmdlets.GetAzureRemoteAppVm","Add Help record for cmdlet Get-AzureRemoteAppVM to help file."
+"Microsoft.WindowsAzure.Commands.RemoteApp.dll","Microsoft.WindowsAzure.Commands.RemoteApp.dll-help.xml","Microsoft.WindowsAzure.Management.RemoteApp.Cmdlets.GetAzureRemoteAppVmStaleAdObject","1","6050","Help missing for cmdlet Get-AzureRemoteAppVmStaleAdObject implemented by class Microsoft.WindowsAzure.Management.RemoteApp.Cmdlets.GetAzureRemoteAppVmStaleAdObject","Add Help record for cmdlet Get-AzureRemoteAppVmStaleAdObject to help file."
+"Microsoft.WindowsAzure.Commands.RemoteApp.dll","Microsoft.WindowsAzure.Commands.RemoteApp.dll-help.xml","Microsoft.WindowsAzure.Management.RemoteApp.Cmdlets.RestartAzureRemoteAppVm","1","6050","Help missing for cmdlet Restart-AzureRemoteAppVM implemented by class Microsoft.WindowsAzure.Management.RemoteApp.Cmdlets.RestartAzureRemoteAppVm","Add Help record for cmdlet Restart-AzureRemoteAppVM to help file."
+"Microsoft.WindowsAzure.Commands.Profile.dll","Microsoft.WindowsAzure.Commands.Profile.dll-Help.xml","Microsoft.WindowsAzure.Commands.Profile.EnableAzureDataCollectionCommand","1","6050","Help missing for cmdlet Enable-AzureDataCollection implemented by class Microsoft.WindowsAzure.Commands.Profile.EnableAzureDataCollectionCommand","Add Help record for cmdlet Enable-AzureDataCollection to help file."
+"Microsoft.WindowsAzure.Commands.Profile.dll","Microsoft.WindowsAzure.Commands.Profile.dll-Help.xml","Microsoft.WindowsAzure.Commands.Profile.DisableAzureDataCollectionCommand","1","6050","Help missing for cmdlet Disable-AzureDataCollection implemented by class Microsoft.WindowsAzure.Commands.Profile.DisableAzureDataCollectionCommand","Add Help record for cmdlet Disable-AzureDataCollection to help file."
+"Microsoft.WindowsAzure.Commands.SqlDatabase.dll","Microsoft.WindowsAzure.Commands.SqlDatabase.dll-Help.xml","Microsoft.WindowsAzure.Commands.SqlDatabase.Database.Cmdlet.GetAzureSqlDatabaseUsages","1","6050","Help missing for cmdlet Get-AzureSqlDatabaseUsages implemented by class Microsoft.WindowsAzure.Commands.SqlDatabase.Database.Cmdlet.GetAzureSqlDatabaseUsages","Add Help record for cmdlet Get-AzureSqlDatabaseUsages to help file."
diff --git a/tools/StaticAnalysis/Exceptions/MissingAssemblies.csv b/tools/StaticAnalysis/Exceptions/MissingAssemblies.csv
new file mode 100644
index 000000000000..0423039893b0
--- /dev/null
+++ b/tools/StaticAnalysis/Exceptions/MissingAssemblies.csv
@@ -0,0 +1,6 @@
+"Directory","Assembly Name","Assembly Version","Referencing Assembly","Severity","ProblemId","Description","Remediation"
+"src\Package\Debug\ServiceManagement\Azure\Compute","Microsoft.Web.Deployment","9.0.0.0","Microsoft.WindowsAzure.Commands.Utilities","0","3000","Missing assembly Microsoft.Web.Deployment referenced from Microsoft.WindowsAzure.Commands.Utilities","Ensure that the assembly is included in the Wix file or directory"
+"src\Package\Debug\ServiceManagement\Azure\ManagedCache","Microsoft.Web.Deployment","9.0.0.0","Microsoft.WindowsAzure.Commands.Utilities","0","3000","Missing assembly Microsoft.Web.Deployment referenced from Microsoft.WindowsAzure.Commands.Utilities","Ensure that the assembly is included in the Wix file or directory"
+"src\Package\Debug\ServiceManagement\Azure\Networking","Microsoft.Web.Deployment","9.0.0.0","Microsoft.WindowsAzure.Commands.Utilities","0","3000","Missing assembly Microsoft.Web.Deployment referenced from Microsoft.WindowsAzure.Commands.Utilities","Ensure that the assembly is included in the Wix file or directory"
+"src\Package\Debug\ServiceManagement\Azure\Services","Microsoft.Web.Deployment","9.0.0.0","Microsoft.WindowsAzure.Commands.Utilities","0","3000","Missing assembly Microsoft.Web.Deployment referenced from Microsoft.WindowsAzure.Commands.Utilities","Ensure that the assembly is included in the Wix file or directory"
+"src\Package\Debug\ServiceManagement\Azure\Sql","Microsoft.Web.Deployment","9.0.0.0","Microsoft.WindowsAzure.Commands.Utilities","0","3000","Missing assembly Microsoft.Web.Deployment referenced from Microsoft.WindowsAzure.Commands.Utilities","Ensure that the assembly is included in the Wix file or directory"
diff --git a/tools/StaticAnalysis/HelpAnalyzer/CmdletHelpParser.cs b/tools/StaticAnalysis/HelpAnalyzer/CmdletHelpParser.cs
index c1d7d1e0476f..0922523add34 100644
--- a/tools/StaticAnalysis/HelpAnalyzer/CmdletHelpParser.cs
+++ b/tools/StaticAnalysis/HelpAnalyzer/CmdletHelpParser.cs
@@ -27,6 +27,9 @@ public class CmdletHelpParser
public const string MamlSchemaUri = "http://schemas.microsoft.com/maml/2004/10";
public const string MamlDevSchemaUri = "http://schemas.microsoft.com/maml/dev/2004/10";
public const string CommandSchemaUri = "http://schemas.microsoft.com/maml/dev/command/2004/10";
+ const int MissingCommandName = 5000;
+ const int MissingCommandDetails = 5010;
+ const int InvalidHelpFile = 5020;
public static IList GetHelpTopics(string helpPath, ReportLogger logger)
{
IList cmdlets = new List();
@@ -49,6 +52,7 @@ public static IList GetHelpTopics(string helpPath, ReportLogger GetHelpTopics(string helpPath, ReportLogger GetHelpTopics(string helpPath, ReportLogger
public class HelpAnalyzer : IStaticAnalyzer
{
+ const int MissingHelp = 6050;
public HelpAnalyzer()
{
Name = "Help Analyzer";
@@ -66,7 +67,7 @@ public void Analyze(IEnumerable scopes)
h.HelpFile = helpFileName;
h.Assembly = cmdletFileName;
}, "Cmdlet");
- var proxy = AppDomainHelpers.CreateProxy(directory, out _appDomain);
+ var proxy = EnvironmentHelpers.CreateProxy(directory, out _appDomain);
var cmdlets = proxy.GetCmdlets(cmdletFile);
var helpRecords = CmdletHelpParser.GetHelpTopics(helpFile, helpLogger);
ValidateHelpRecords(cmdlets, helpRecords, helpLogger);
@@ -92,6 +93,7 @@ private void ValidateHelpRecords(IList cmdlets, IList
public string Target { get; set; }
+
+ public int ProblemId { get; set; }
public string Description { get; set; }
public string Remediation { get; set; }
public int Severity { get; set; }
public string PrintHeaders()
{
- return "\"Assembly\",\"HelpFile\",\"Target\",\"Severity\",\"Description\",\"Remediation\"";
+ return "\"Assembly\",\"HelpFile\",\"Target\",\"Severity\",\"ProblemId\",\"Description\",\"Remediation\"";
}
public string FormatRecord()
{
- return string.Format("\"{0}\",\"{1}\",\"{2}\",\"{3}\",\"{4}\",\"{5}\"",
- Assembly, HelpFile, Target, Severity, Description, Remediation);
+ return string.Format("\"{0}\",\"{1}\",\"{2}\",\"{3}\",\"{4}\",\"{5}\",\"{6}\"",
+ Assembly, HelpFile, Target, Severity, ProblemId, Description, Remediation);
+ }
+
+ public bool Match(IReportRecord other)
+ {
+ var result = false;
+ var record = other as HelpIssue;
+ if (record != null)
+ {
+ result = string.Equals(record.Assembly, Assembly, StringComparison.OrdinalIgnoreCase) &&
+ string.Equals(record.HelpFile, HelpFile, StringComparison.OrdinalIgnoreCase) &&
+ string.Equals(record.Target, Target, StringComparison.OrdinalIgnoreCase) &&
+ record.ProblemId == ProblemId;
+ }
+
+ return result;
+ }
+
+ public IReportRecord Parse(string line)
+ {
+ var matcher = "\"([^\"]+)\",\"([^\"]+)\",\"([^\"]+)\",\"([^\"]+)\",\"([^\"]+)\",\"([^\"]+)\",\"([^\"]+)\"";
+ var match = Regex.Match(line, matcher);
+ if (!match.Success || match.Groups.Count < 8)
+ {
+ throw new InvalidOperationException(string.Format("Could not parse '{0}' as HelpIssue record", line));
+ }
+
+ Assembly = match.Groups[1].Value;
+ HelpFile = match.Groups[2].Value;
+ Target = match.Groups[3].Value;
+ Severity = int.Parse(match.Groups[4].Value);
+ ProblemId = int.Parse(match.Groups[5].Value);
+ Description = match.Groups[6].Value;
+ Remediation = match.Groups[7].Value;
+ return this;
}
}
}
diff --git a/tools/StaticAnalysis/IReportRecord.cs b/tools/StaticAnalysis/IReportRecord.cs
index ab0c97f50171..3ad7328b0f11 100644
--- a/tools/StaticAnalysis/IReportRecord.cs
+++ b/tools/StaticAnalysis/IReportRecord.cs
@@ -12,6 +12,8 @@
// limitations under the License.
// ----------------------------------------------------------------------------------
+using System.Security.Cryptography.X509Certificates;
+
namespace StaticAnalysis
{
///
@@ -19,10 +21,13 @@ namespace StaticAnalysis
///
public interface IReportRecord
{
+ int ProblemId { get; set; }
string Description { get; set; }
string Remediation { get; set; }
int Severity { get; set; }
string PrintHeaders();
string FormatRecord();
+ bool Match(IReportRecord other);
+ IReportRecord Parse(string line);
}
}
diff --git a/tools/StaticAnalysis/Program.cs b/tools/StaticAnalysis/Program.cs
index 9f989039b0b1..02b1f5caa272 100644
--- a/tools/StaticAnalysis/Program.cs
+++ b/tools/StaticAnalysis/Program.cs
@@ -55,7 +55,15 @@ public static void Main(string[] args)
logReportsDirectoryWarning = false;
}
- var logger = new ConsoleLogger(reportsDirectory);
+ var exceptionsDirectory = Path.Combine(reportsDirectory, "Exceptions");
+ bool useExceptions = true;
+ if (args.Length > 2)
+ {
+ bool.TryParse(args[2], out useExceptions);
+ }
+
+ var logger = useExceptions? new ConsoleLogger(reportsDirectory, exceptionsDirectory) :
+ new ConsoleLogger(reportsDirectory);
if (logReportsDirectoryWarning)
{
@@ -72,6 +80,7 @@ public static void Main(string[] args)
}
logger.WriteReports();
+ logger.CheckForIssues(2);
}
}
}
diff --git a/tools/StaticAnalysis/ReportLogger.cs b/tools/StaticAnalysis/ReportLogger.cs
index c836be697c1c..767215883bfd 100644
--- a/tools/StaticAnalysis/ReportLogger.cs
+++ b/tools/StaticAnalysis/ReportLogger.cs
@@ -13,7 +13,9 @@
// ----------------------------------------------------------------------------------
using System.Collections.Generic;
+using System.IO;
using System.Linq;
+using System.Runtime.InteropServices;
namespace StaticAnalysis
{
@@ -24,10 +26,18 @@ public abstract class ReportLogger
{
private AnalysisLogger _parent;
private string _outputFile;
+ private string _exceptionsFilename;
+
public ReportLogger(string fileName, AnalysisLogger parent)
+ : this(fileName, null, parent)
+ {
+ }
+
+ public ReportLogger(string fileName, string exceptionsFilename, AnalysisLogger parent)
{
_parent = parent;
_outputFile = fileName;
+ _exceptionsFilename = exceptionsFilename;
}
protected AnalysisLogger ParentLogger { get { return _parent; } }
@@ -54,15 +64,31 @@ public virtual void WriteWarning(string message)
/// A typed report logger
///
/// The type of the report this logger will log.
- public class ReportLogger : ReportLogger where T : IReportRecord, new()
+ public class ReportLogger : ReportLogger where T : class, IReportRecord, new()
{
public ReportLogger(string fileName, AnalysisLogger logger)
+ : this(fileName, null, logger)
+ {
+ Decorator = Decorator.Create();
+ }
+
+ public ReportLogger(string fileName, string exceptionsFileName, AnalysisLogger logger)
: base(fileName, logger)
{
Decorator = Decorator.Create();
+ if (exceptionsFileName != null && File.Exists(exceptionsFileName))
+ {
+ var records = File.ReadAllLines(exceptionsFileName);
+ for (int i = 1; i < records.Length; ++i)
+ {
+ var record = new T();
+ _exceptionRecords.Add(record.Parse(records[i]) as T);
+ }
+ }
}
private IList _records = new List();
+ private IList _exceptionRecords = new List();
public Decorator Decorator { get; protected set; }
///
@@ -72,7 +98,10 @@ public ReportLogger(string fileName, AnalysisLogger logger)
public void LogRecord(T record)
{
Decorator.Apply(record);
- _records.Add(record);
+ if (!_exceptionRecords.Any(r => r.Match(record)))
+ {
+ _records.Add(record);
+ }
}
public override IList Records
diff --git a/tools/StaticAnalysis/StaticAnalysis.Test/Constants.cs b/tools/StaticAnalysis/StaticAnalysis.Test/Constants.cs
new file mode 100644
index 000000000000..57f52de4ab0d
--- /dev/null
+++ b/tools/StaticAnalysis/StaticAnalysis.Test/Constants.cs
@@ -0,0 +1,41 @@
+
+// ----------------------------------------------------------------------------------
+//
+// Copyright Microsoft Corporation
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+// http://www.apache.org/licenses/LICENSE-2.0
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+// ----------------------------------------------------------------------------------
+
+namespace StaticAnalysis.Test
+{
+ public class Category
+ {
+ // Service
+ public const string Service = "Service";
+
+ public const string All = "All";
+
+ // Owners
+ public const string OneSDK = "OneSDK";
+
+ // Acceptance type
+ public const string AcceptanceType = "AcceptanceType";
+
+ public const string CIT = "CIT";
+
+ public const string BVT = "BVT";
+
+ public const string CheckIn = "CheckIn";
+
+ // Run Type
+ public const string RunType = "RunType";
+ public const string LiveOnly = "LiveOnly";
+ }
+}
diff --git a/tools/StaticAnalysis/StaticAnalysis.Test/MatchingTests.cs b/tools/StaticAnalysis/StaticAnalysis.Test/MatchingTests.cs
new file mode 100644
index 000000000000..705b4eea38a8
--- /dev/null
+++ b/tools/StaticAnalysis/StaticAnalysis.Test/MatchingTests.cs
@@ -0,0 +1,374 @@
+// ----------------------------------------------------------------------------------
+//
+// Copyright Microsoft Corporation
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+// http://www.apache.org/licenses/LICENSE-2.0
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+// ----------------------------------------------------------------------------------
+
+using System;
+using System.Collections.Generic;
+using System.Text;
+using StaticAnalysis.DependencyAnalyzer;
+using StaticAnalysis.HelpAnalyzer;
+using Xunit;
+
+namespace StaticAnalysis.Test
+{
+ public class MatchingTests
+ {
+ private static Random Random = new Random();
+ private static T GetClone(T baseValue) where T : class, ICloneable
+ {
+ T result = null;
+ if (baseValue != null)
+ {
+ result = baseValue.Clone() as T;
+ }
+
+ return result;
+ }
+
+ private static AssemblyVersionConflict CreateAssemblyVersionConflict(string directory, string assembly, string parentAssembly,
+ int problemId, bool vary = false)
+ {
+ return new AssemblyVersionConflict
+ {
+ Directory = directory != null && vary? GetClone(directory).ToUpperInvariant() : GetClone(directory),
+ AssemblyName = assembly!= null && vary ? GetClone(assembly).ToLowerInvariant() : GetClone(assembly),
+ ParentAssembly = parentAssembly != null && vary? GetClone(parentAssembly).ToUpperInvariant() : GetClone(parentAssembly),
+ ProblemId = problemId,
+ Description = GetRandomString(),
+ Remediation = GetRandomString(),
+ ActualVersion = GetRandomVersion(),
+ ExpectedVersion = GetRandomVersion(),
+ Severity = Random.Next()
+ };
+ }
+
+ private static HelpIssue CreateHelpIssue(string assembly, string helpFile, string target, int problemId, bool vary = false)
+ {
+ return new HelpIssue
+ {
+ Assembly = assembly != null && vary? GetClone(assembly).ToUpperInvariant() : GetClone(assembly),
+ HelpFile = assembly!= null && vary ? GetClone(helpFile).ToLowerInvariant() : GetClone(helpFile),
+ Target = target != null && vary? GetClone(target).ToUpperInvariant() : GetClone(target),
+ ProblemId = problemId,
+ Description = GetRandomString(),
+ Remediation = GetRandomString(),
+ Severity = Random.Next()
+ };
+ }
+
+
+ private static ExtraAssembly CreateExtraAssembly(string directory, string assembly,
+ int problemId, bool vary = false)
+ {
+ return new ExtraAssembly
+ {
+ Directory = directory != null && vary? GetClone(directory).ToUpperInvariant() : GetClone(directory),
+ AssemblyName = assembly!= null && vary ? GetClone(assembly).ToLowerInvariant() : GetClone(assembly),
+ ProblemId = problemId,
+ Description = GetRandomString(),
+ Remediation = GetRandomString(),
+ Severity = Random.Next()
+ };
+ }
+
+ private static MissingAssembly CreateMissingAssembly(string directory, string assembly,
+ string version, string refAssembly, int problemId, bool vary = false)
+ {
+ return new MissingAssembly
+ {
+ Directory = directory != null && vary? GetClone(directory).ToUpperInvariant() : GetClone(directory),
+ AssemblyName = assembly!= null && vary ? GetClone(assembly).ToLowerInvariant() : GetClone(assembly),
+ AssemblyVersion = version,
+ ReferencingAssembly = refAssembly,
+ ProblemId = problemId,
+ Description = GetRandomString(),
+ Remediation = GetRandomString(),
+ Severity = Random.Next(),
+ };
+ }
+
+ private static SharedAssemblyConflict CreateSharedAssemblyConflict(string assembly, string version,
+ int problemId, bool vary = false)
+ {
+ return new SharedAssemblyConflict
+ {
+
+ AssemblyName = assembly!= null && vary ? GetClone(assembly).ToLowerInvariant() : GetClone(assembly),
+ AssemblyVersion = Version.Parse(version),
+ ProblemId = problemId,
+ Description = GetRandomString(),
+ Remediation = GetRandomString(),
+ Severity = Random.Next(),
+ AssemblyPathsAndFileVersions = GetRandomStringVersionList()
+ };
+ }
+
+ private static List> GetRandomStringVersionList()
+ {
+ var result = new List>();
+ result.Add(new Tuple(GetRandomString(), GetRandomVersion()));
+ result.Add(new Tuple(GetRandomString(), GetRandomVersion()));
+ return result;
+ }
+
+ private static Version GetRandomVersion()
+ {
+ return new Version(Random.Next(), Random.Next(), Random.Next(), Random.Next());
+ }
+
+ private static string GetRandomString()
+ {
+ var length = Random.Next(5, 30);
+ var builder = new StringBuilder();
+ for (int i = 0; i < length; ++i)
+ {
+ builder.Append(Random.Next('A', 'z'));
+ }
+
+ return builder.ToString();
+ }
+
+ [Theory]
+ [Trait(Category.AcceptanceType, Category.CheckIn)]
+ [InlineData("", null , null, int.MinValue)]
+ [InlineData("", "", "", int.MinValue)]
+ [InlineData("dir1/dir2/file/", "MyAssembly", "MyParentAssembly", int.MaxValue)]
+ [InlineData("\\dir1\\dir2\\dir3\\", "My.Longer.Assembly", "My.Longer.ParentAssembly", 2000)]
+ [InlineData("\\dir1\\dir2\\啊齄丂狛狜隣郎隣兀﨩", "㙉㙊䵯䵰䶴䶵", "ᠠᡷᢀᡨᡩᡪᡫ", 0)]
+ public void CanMatchAsssemblyVersionConflict(string directory, string assembly, string parentAssembly, int problemId)
+ {
+ var conflict1 = CreateAssemblyVersionConflict(directory, assembly, parentAssembly, problemId);
+ var conflict2 = CreateAssemblyVersionConflict(directory, assembly, parentAssembly, problemId, true);
+ Assert.True(conflict1.Match(conflict2));
+ }
+
+ [Theory]
+ [Trait(Category.AcceptanceType, Category.CheckIn)]
+ [InlineData("dir1/dir2/file/", "MyAssembly", "MyParentAssembly", int.MaxValue)]
+ [InlineData("\\dir1\\dir2\\dir3\\", "My.Longer.Assembly", "My.Longer.ParentAssembly", 2000)]
+ [InlineData("\\dir1\\dir2\\啊齄丂狛狜隣郎隣兀﨩", "㙉㙊䵯䵰䶴䶵", "ᠠᡷᢀᡨᡩᡪᡫ", 0)]
+ public void CanRoundTripAssemblyVersionConflict(string directory, string assembly, string parentAssembly, int problemId)
+ {
+ var conflict1 = CreateAssemblyVersionConflict(directory, assembly, parentAssembly, problemId);
+ var conflict2 = new AssemblyVersionConflict().Parse(conflict1.FormatRecord());
+ Assert.True(conflict1.Match(conflict2));
+ }
+
+ [Theory]
+ [Trait(Category.AcceptanceType, Category.CheckIn)]
+ [InlineData("", null , null, int.MinValue)]
+ [InlineData("", "", "", int.MinValue)]
+ [InlineData("dir1/dir2/file/", "MyAssembly", "MyParentAssembly", int.MaxValue)]
+ [InlineData("\\dir1\\dir2\\dir3\\", "My.Longer.Assembly", "My.Longer.ParentAssembly", 2000)]
+ [InlineData("\\dir1\\dir2\\啊齄丂狛狜隣郎隣兀﨩", "㙉㙊䵯䵰䶴䶵", "ᠠᡷᢀᡨᡩᡪᡫ", 0)]
+ public void CanContrastAssemblyVersionConflict(string directory, string assembly, string parentAssembly, int problemId)
+ {
+ var conflict1 = CreateAssemblyVersionConflict(directory, assembly, parentAssembly, problemId);
+ var conflict2 = CreateAssemblyVersionConflict(GetRandomString(), assembly, parentAssembly, problemId);
+ Assert.False(conflict1.Match(conflict2));
+ conflict2 = CreateAssemblyVersionConflict(directory, GetRandomString(), parentAssembly, problemId);
+ Assert.False(conflict1.Match(conflict2));
+ conflict2 = CreateAssemblyVersionConflict(directory, assembly, GetRandomString(), problemId);
+ Assert.False(conflict1.Match(conflict2));
+ conflict2 = CreateAssemblyVersionConflict(directory, assembly, parentAssembly, Random.Next());
+ Assert.False(conflict1.Match(conflict2));
+ }
+
+
+ [Theory]
+ [Trait(Category.AcceptanceType, Category.CheckIn)]
+ [InlineData("", null , int.MinValue)]
+ [InlineData("", "", int.MinValue)]
+ [InlineData("dir1/dir2/file/", "MyAssembly", int.MaxValue)]
+ [InlineData("\\dir1\\dir2\\dir3\\", "My.Longer.Assembly", 1000)]
+ [InlineData("\\dir1\\dir2\\啊齄丂狛狜隣郎隣兀﨩", "㙉㙊䵯䵰䶴䶵", 0)]
+ public void CanMatchExtraAssembly(string directory, string assembly, int problemId)
+ {
+ var conflict1 = CreateExtraAssembly(directory, assembly, problemId);
+ var conflict2 = CreateExtraAssembly(directory, assembly, problemId, true);
+ Assert.True(conflict1.Match(conflict2));
+ }
+
+ [Theory]
+ [Trait(Category.AcceptanceType, Category.CheckIn)]
+ [InlineData("dir1/dir2/file/", "MyAssembly", int.MaxValue)]
+ [InlineData("\\dir1\\dir2\\dir3\\", "My.Longer.Assembly", 1000)]
+ [InlineData("\\dir1\\dir2\\啊齄丂狛狜隣郎隣兀﨩", "㙉㙊䵯䵰䶴䶵", 0)]
+ public void CanRoundTripExtraAssembly(string directory, string assembly, int problemId)
+ {
+ var conflict1 = CreateExtraAssembly(directory, assembly, problemId);
+ var conflict2 = new ExtraAssembly().Parse(conflict1.FormatRecord());
+ Assert.True(conflict1.Match(conflict2));
+ }
+
+ [Theory]
+ [Trait(Category.AcceptanceType, Category.CheckIn)]
+ [InlineData("", null , int.MinValue)]
+ [InlineData("", "", int.MinValue)]
+ [InlineData("dir1/dir2/file/", "MyAssembly", int.MaxValue)]
+ [InlineData("\\dir1\\dir2\\dir3\\", "My.Longer.Assembly", 1000)]
+ [InlineData("\\dir1\\dir2\\啊齄丂狛狜隣郎隣兀﨩", "㙉㙊䵯䵰䶴䶵", 0)]
+ public void CanContrastExtraAssembly(string directory, string assembly, int problemId)
+ {
+ var conflict1 = CreateExtraAssembly(directory, assembly, problemId);
+ var conflict2 = CreateExtraAssembly(GetRandomString(), assembly, problemId);
+ Assert.False(conflict1.Match(conflict2));
+ conflict2 = CreateExtraAssembly(directory, GetRandomString(), problemId);
+ Assert.False(conflict1.Match(conflict2));
+ conflict2 = CreateExtraAssembly(directory, assembly, Random.Next());
+ Assert.False(conflict1.Match(conflict2));
+ }
+
+ [Theory]
+ [Trait(Category.AcceptanceType, Category.CheckIn)]
+ [InlineData("", null , "1.0", null, int.MinValue)]
+ [InlineData("", "", "2.0", "", int.MinValue)]
+ [InlineData("dir1/dir2/file/", "MyAssembly", "1.9.9", "MyRefAssembly", int.MaxValue)]
+ [InlineData("\\dir1\\dir2\\dir3\\", "My.Longer.Assembly", "9.9.999.9999", "My.Longer.Ref.Assembly", 100)]
+ [InlineData("\\dir1\\dir2\\啊齄丂狛狜隣郎隣兀﨩", "㙉㙊䵯䵰䶴䶵", "1.2.3.4","ᠠᡷᢀᡨᡩᡪᡫ", 0)]
+ public void CanMatchMissingAssembly(string directory, string assembly, string version, string refAssembly,
+ int problemId)
+ {
+ var conflict1 = CreateMissingAssembly(directory, assembly, version, refAssembly, problemId);
+ var conflict2 = CreateMissingAssembly(directory, assembly, version, refAssembly, problemId, true);
+ Assert.True(conflict1.Match(conflict2));
+ }
+
+ [Theory]
+ [Trait(Category.AcceptanceType, Category.CheckIn)]
+ [InlineData("dir1/dir2/file/", "MyAssembly", "1.9.9", "MyRefAssembly", int.MaxValue)]
+ [InlineData("\\dir1\\dir2\\dir3\\", "My.Longer.Assembly", "9.9.999.9999", "My.Longer.Ref.Assembly", 100)]
+ [InlineData("\\dir1\\dir2\\啊齄丂狛狜隣郎隣兀﨩", "㙉㙊䵯䵰䶴䶵", "1.2.3.4","ᠠᡷᢀᡨᡩᡪᡫ", 0)]
+ public void CanRoundTripMissingAssembly(string directory, string assembly, string version, string refAssembly,
+ int problemId)
+ {
+ var conflict1 = CreateMissingAssembly(directory, assembly, version, refAssembly, problemId);
+ var conflict2 = new MissingAssembly().Parse(conflict1.FormatRecord());
+ Assert.True(conflict1.Match(conflict2));
+ }
+
+ [Theory]
+ [Trait(Category.AcceptanceType, Category.CheckIn)]
+ [InlineData("", null , "1.0", null, int.MinValue)]
+ [InlineData("", "", "2.0", "", int.MinValue)]
+ [InlineData("dir1/dir2/file/", "MyAssembly", "1.9.9", "MyRefAssembly", int.MaxValue)]
+ [InlineData("\\dir1\\dir2\\dir3\\", "My.Longer.Assembly", "9.9.999.9999", "My.Longer.Ref.Assembly", 100)]
+ [InlineData("\\dir1\\dir2\\啊齄丂狛狜隣郎隣兀﨩", "㙉㙊䵯䵰䶴䶵", "1.2.3.4","ᠠᡷᢀᡨᡩᡪᡫ", 0)]
+ public void CanContrastMissingAssembly(string directory, string assembly, string version, string refAssembly,
+ int problemId)
+ {
+ var conflict1 = CreateMissingAssembly(directory, assembly, version, refAssembly, problemId);
+ var conflict2 = CreateMissingAssembly(GetRandomString(), assembly, version, refAssembly, problemId);
+ Assert.False(conflict1.Match(conflict2));
+ conflict2 = CreateMissingAssembly(directory, GetRandomString(), version, refAssembly, problemId);
+ Assert.False(conflict1.Match(conflict2));
+ conflict2 = CreateMissingAssembly(directory, assembly, GetRandomVersion().ToString(), refAssembly, problemId);
+ Assert.False(conflict1.Match(conflict2));
+ conflict2 = CreateMissingAssembly(directory, assembly, version, GetRandomString(), problemId);
+ Assert.False(conflict1.Match(conflict2));
+ conflict2 = CreateMissingAssembly(directory, assembly, version, refAssembly, Random.Next());
+ Assert.False(conflict1.Match(conflict2));
+ }
+
+ [Theory]
+ [Trait(Category.AcceptanceType, Category.CheckIn)]
+ [InlineData(null, "1.0", int.MinValue)]
+ [InlineData("", "1.0.2", int.MinValue)]
+ [InlineData("MyAssembly", "9.99.999.9999", int.MaxValue)]
+ [InlineData("My.Longer.Assembly", "0.0.0.1", 2000)]
+ [InlineData("㙉㙊䵯䵰䶴䶵", "0.0.1", 0)]
+ public void CanMatchSharedAssemblyConflict(string assembly, string version, int problemId)
+ {
+ var conflict1 = CreateSharedAssemblyConflict(assembly, version, problemId);
+ var conflict2 = CreateSharedAssemblyConflict(assembly, version, problemId, true);
+ Assert.True(conflict1.Match(conflict2));
+ }
+
+ [Theory]
+ [Trait(Category.AcceptanceType, Category.CheckIn)]
+ [InlineData("MyAssembly", "9.99.999.9999", int.MaxValue)]
+ [InlineData("My.Longer.Assembly", "0.0.0.1", 2000)]
+ [InlineData("㙉㙊䵯䵰䶴䶵", "0.0.1", 0)]
+ public void CanRoundTripSharedAssemblyConflict(string assembly, string version, int problemId)
+ {
+ var conflict1 = CreateSharedAssemblyConflict(assembly, version, problemId);
+ var conflict2 = new SharedAssemblyConflict().Parse(conflict1.FormatRecord());
+ Assert.True(conflict1.Match(conflict2));
+ }
+
+ [Theory]
+ [Trait(Category.AcceptanceType, Category.CheckIn)]
+ [InlineData(null, "1.0", int.MinValue)]
+ [InlineData("", "1.0.2", int.MinValue)]
+ [InlineData("MyAssembly", "9.99.999.9999", int.MaxValue)]
+ [InlineData("My.Longer.Assembly", "0.0.0.1", 2000)]
+ [InlineData("㙉㙊䵯䵰䶴䶵", "0.0.1", 0)]
+ public void CanContrastSharedAssemblyConflict(string assembly, string version, int problemId)
+ {
+ var conflict1 = CreateSharedAssemblyConflict(assembly, version, problemId);
+ var conflict2 = CreateSharedAssemblyConflict(GetRandomString(), version, problemId);
+ Assert.False(conflict1.Match(conflict2));
+ conflict2 = CreateSharedAssemblyConflict(assembly, GetRandomVersion().ToString(), problemId);
+ Assert.False(conflict1.Match(conflict2));
+ conflict2 = CreateSharedAssemblyConflict(assembly, version, Random.Next());
+ Assert.False(conflict1.Match(conflict2));
+ }
+
+ [Theory]
+ [Trait(Category.AcceptanceType, Category.CheckIn)]
+ [InlineData(null, null, null, int.MinValue)]
+ [InlineData("", "", "", int.MinValue)]
+ [InlineData( "MyAssembly", "MyHelpFile", "MyTarget", int.MaxValue)]
+ [InlineData("My.Longer.Assembly", "My.Longer.Helpfile", "My.Longer.Target", 100)]
+ [InlineData("啊齄丂狛狜隣郎隣兀﨩", "㙉㙊䵯䵰䶴䶵", "ᠠᡷᢀᡨᡩᡪᡫ", 0)]
+ public void CanMatchHelpIssue(string assembly, string helpFile, string target, int problemId)
+ {
+ var help1 = CreateHelpIssue(assembly, helpFile, target, problemId);
+ var help2 = CreateHelpIssue(assembly, helpFile, target, problemId, true);
+ Assert.True(help1.Match(help2));
+ }
+
+ [Theory]
+ [Trait(Category.AcceptanceType, Category.CheckIn)]
+ [InlineData( "MyAssembly", "MyHelpFile", "MyTarget", int.MaxValue)]
+ [InlineData("My.Longer.Assembly", "My.Longer.Helpfile", "My.Longer.Target", 100)]
+ [InlineData("啊齄丂狛狜隣郎隣兀﨩", "㙉㙊䵯䵰䶴䶵", "ᠠᡷᢀᡨᡩᡪᡫ", 0)]
+ public void CanRoundTripHelpIssue(string assembly, string helpFile, string target, int problemId)
+ {
+ var help1 = CreateHelpIssue(assembly, helpFile, target, problemId);
+ var help2 = new HelpIssue().Parse(help1.FormatRecord());
+ Assert.True(help1.Match(help2));
+ }
+
+ [Theory]
+ [Trait(Category.AcceptanceType, Category.CheckIn)]
+ [InlineData(null, null, null, int.MinValue)]
+ [InlineData("", "", "", int.MinValue)]
+ [InlineData( "MyAssembly", "MyHelpFile", "MyTarget", int.MaxValue)]
+ [InlineData("My.Longer.Assembly", "My.Longer.Helpfile", "My.Longer.Target", 100)]
+ [InlineData("啊齄丂狛狜隣郎隣兀﨩", "㙉㙊䵯䵰䶴䶵", "ᠠᡷᢀᡨᡩᡪᡫ", 0)]
+ public void CanContrastHelpIssue(string assembly, string helpFile, string target, int problemId)
+ {
+ var help1 = CreateHelpIssue(assembly, helpFile, target, problemId);
+ var help2 = CreateHelpIssue(GetRandomString(), helpFile, target, problemId);
+ Assert.False(help1.Match(help2));
+ help2 = CreateHelpIssue(assembly, GetRandomString(), target, problemId);
+ Assert.False(help1.Match(help2));
+ help2 = CreateHelpIssue(assembly, helpFile, GetRandomString(), problemId);
+ Assert.False(help1.Match(help2));
+ help2 = CreateHelpIssue(assembly, helpFile, target, Random.Next());
+ Assert.False(help1.Match(help2));
+ }
+
+ }
+}
diff --git a/tools/StaticAnalysis/StaticAnalysis.Test/Properties/AssemblyInfo.cs b/tools/StaticAnalysis/StaticAnalysis.Test/Properties/AssemblyInfo.cs
new file mode 100644
index 000000000000..c4a47c3a7e47
--- /dev/null
+++ b/tools/StaticAnalysis/StaticAnalysis.Test/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("StaticAnalysis.Test")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("StaticAnalysis.Test")]
+[assembly: AssemblyCopyright("Copyright © 2016")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("f74b11e2-939c-4a80-a325-9d88d0171861")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/tools/StaticAnalysis/StaticAnalysis.Test/StaticAnalysis.Test.csproj b/tools/StaticAnalysis/StaticAnalysis.Test/StaticAnalysis.Test.csproj
new file mode 100644
index 000000000000..90c8861e7f02
--- /dev/null
+++ b/tools/StaticAnalysis/StaticAnalysis.Test/StaticAnalysis.Test.csproj
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+ Debug
+ AnyCPU
+ {A034BE7F-0CD8-4A03-85B3-44CC2E58B86F}
+ Library
+ Properties
+ StaticAnalysis.Test
+ StaticAnalysis.Test
+ v4.5
+ 512
+ ba98ab34
+
+
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+
+
+
+
+
+
+
+ ..\packages\xunit.abstractions.2.0.0\lib\net35\xunit.abstractions.dll
+ True
+
+
+ ..\packages\xunit.assert.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.assert.dll
+ True
+
+
+ ..\packages\xunit.extensibility.core.2.1.0\lib\portable-net45+win8+wp8+wpa81\xunit.core.dll
+ True
+
+
+ ..\packages\xunit.extensibility.execution.2.1.0\lib\net45\xunit.execution.desktop.dll
+ True
+
+
+
+
+
+
+
+
+
+ {68384b59-ba0c-4b7b-b3f6-9c7988296c16}
+ StaticAnalysis
+
+
+
+
+
+
+
+
+
+
+
+ This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.
+
+
+
+
+
+
\ No newline at end of file
diff --git a/tools/StaticAnalysis/StaticAnalysis.Test/packages.config b/tools/StaticAnalysis/StaticAnalysis.Test/packages.config
new file mode 100644
index 000000000000..dcbf45edf06b
--- /dev/null
+++ b/tools/StaticAnalysis/StaticAnalysis.Test/packages.config
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/tools/StaticAnalysis/StaticAnalysis.csproj b/tools/StaticAnalysis/StaticAnalysis.csproj
index 21a772b5b05c..68443e550f63 100644
--- a/tools/StaticAnalysis/StaticAnalysis.csproj
+++ b/tools/StaticAnalysis/StaticAnalysis.csproj
@@ -46,7 +46,7 @@
-
+
@@ -72,6 +72,18 @@
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
diff --git a/tools/StaticAnalysis/StaticAnalysis.sln b/tools/StaticAnalysis/StaticAnalysis.sln
index ff18b9d7cfe9..08fc59506fdc 100644
--- a/tools/StaticAnalysis/StaticAnalysis.sln
+++ b/tools/StaticAnalysis/StaticAnalysis.sln
@@ -3,7 +3,11 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2013
VisualStudioVersion = 12.0.40629.0
MinimumVisualStudioVersion = 10.0.40219.1
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Static Analysis", "StaticAnalysis.csproj", "{68384B59-BA0C-4B7B-B3F6-9C7988296C16}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StaticAnalysis", "StaticAnalysis.csproj", "{68384B59-BA0C-4B7B-B3F6-9C7988296C16}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Test", "Test", "{865C472B-4679-4B71-AA4B-B85283F3475D}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "StaticAnalysis.Test", "StaticAnalysis.Test\StaticAnalysis.Test.csproj", "{A034BE7F-0CD8-4A03-85B3-44CC2E58B86F}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -15,8 +19,15 @@ Global
{68384B59-BA0C-4B7B-B3F6-9C7988296C16}.Debug|Any CPU.Build.0 = Debug|Any CPU
{68384B59-BA0C-4B7B-B3F6-9C7988296C16}.Release|Any CPU.ActiveCfg = Release|Any CPU
{68384B59-BA0C-4B7B-B3F6-9C7988296C16}.Release|Any CPU.Build.0 = Release|Any CPU
+ {A034BE7F-0CD8-4A03-85B3-44CC2E58B86F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {A034BE7F-0CD8-4A03-85B3-44CC2E58B86F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {A034BE7F-0CD8-4A03-85B3-44CC2E58B86F}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {A034BE7F-0CD8-4A03-85B3-44CC2E58B86F}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
+ GlobalSection(NestedProjects) = preSolution
+ {A034BE7F-0CD8-4A03-85B3-44CC2E58B86F} = {865C472B-4679-4B71-AA4B-B85283F3475D}
+ EndGlobalSection
EndGlobal