119
119
public List<AssemblyName> UserAssemblyNames { get; private set; }
121
internal string LogMessage { get; private set; }
121
123
public void SetUserAssemblies (IList<string> files)
123
UserAssemblyNames = GetAssemblyNames (files);
126
UserAssemblyNames = GetAssemblyNames (files, out error);
126
internal static List<AssemblyName> GetAssemblyNames (IList<string> files)
130
internal static List<AssemblyName> GetAssemblyNames (IList<string> files, out string error)
128
133
if (files == null || files.Count == 0)
131
136
var names = new List<AssemblyName> ();
132
137
foreach (var file in files) {
138
if (!File.Exists (file)) {
139
error = GettextCatalog.GetString ("User assembly '{0}' is missing. " +
140
"Debugger will now debug all code, not just user code.", file);
134
144
var asm = Mono.Cecil.AssemblyFactory.GetAssemblyManifest (file);
135
145
if (string.IsNullOrEmpty (asm.Name.Name))
136
146
throw new InvalidOperationException ("Assembly has no assembly name");
137
147
names.Add (new AssemblyName (asm.Name.FullName));
138
148
} catch (Exception ex) {
139
LoggingService.LogError ("Soft debug addin error getting assembly name for user assembly '" + file
140
+ "'. Debugger will now debug all code, not just user code.", ex);
149
error = GettextCatalog.GetString ("Could not get assembly name for user assembly '{0}'. " +
150
"Debugger will now debug all code, not just user code.", file);
151
LoggingService.LogError ("Error getting assembly name for user assembly '" + file + "'", ex);