Browse Source

Fixed StackOverflow when showing project options for project stored on a remote network location.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@960 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 20 years ago
parent
commit
e00f9a4efc
  1. 30
      src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/ProjectOptions/Signing.cs

30
src/Main/Base/Project/Src/Gui/Dialogs/OptionPanels/ProjectOptions/Signing.cs

@ -72,17 +72,25 @@ namespace ICSharpCode.SharpDevelop.Gui.OptionPanels
void FindKeys(string directory) void FindKeys(string directory)
{ {
directory = Path.GetFullPath(directory); directory = Path.GetFullPath(directory);
foreach (string fileName in Directory.GetFiles(directory, "*.snk")) { while (true) {
keyFile.Items.Add(FileUtility.GetRelativePath(baseDirectory, fileName)); try {
} foreach (string fileName in Directory.GetFiles(directory, "*.snk")) {
foreach (string fileName in Directory.GetFiles(directory, "*.pfx")) { keyFile.Items.Add(FileUtility.GetRelativePath(baseDirectory, fileName));
keyFile.Items.Add(FileUtility.GetRelativePath(baseDirectory, fileName)); }
} foreach (string fileName in Directory.GetFiles(directory, "*.pfx")) {
foreach (string fileName in Directory.GetFiles(directory, "*.key")) { keyFile.Items.Add(FileUtility.GetRelativePath(baseDirectory, fileName));
keyFile.Items.Add(FileUtility.GetRelativePath(baseDirectory, fileName)); }
} foreach (string fileName in Directory.GetFiles(directory, "*.key")) {
if (directory.Length > 3) { keyFile.Items.Add(FileUtility.GetRelativePath(baseDirectory, fileName));
FindKeys(Path.Combine(directory, "..")); }
} catch {
// can happen for networked drives / network locations
break;
}
int pos = directory.LastIndexOf(Path.DirectorySeparatorChar);
if (pos < 0)
break;
directory = directory.Substring(0, pos);
} }
} }

Loading…
Cancel
Save