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 @@ -72,17 +72,25 @@ namespace ICSharpCode.SharpDevelop.Gui.OptionPanels
void FindKeys(string directory)
{
directory = Path.GetFullPath(directory);
foreach (string fileName in Directory.GetFiles(directory, "*.snk")) {
keyFile.Items.Add(FileUtility.GetRelativePath(baseDirectory, fileName));
}
foreach (string fileName in Directory.GetFiles(directory, "*.pfx")) {
keyFile.Items.Add(FileUtility.GetRelativePath(baseDirectory, fileName));
}
foreach (string fileName in Directory.GetFiles(directory, "*.key")) {
keyFile.Items.Add(FileUtility.GetRelativePath(baseDirectory, fileName));
}
if (directory.Length > 3) {
FindKeys(Path.Combine(directory, ".."));
while (true) {
try {
foreach (string fileName in Directory.GetFiles(directory, "*.snk")) {
keyFile.Items.Add(FileUtility.GetRelativePath(baseDirectory, fileName));
}
foreach (string fileName in Directory.GetFiles(directory, "*.pfx")) {
keyFile.Items.Add(FileUtility.GetRelativePath(baseDirectory, fileName));
}
foreach (string fileName in Directory.GetFiles(directory, "*.key")) {
keyFile.Items.Add(FileUtility.GetRelativePath(baseDirectory, fileName));
}
} 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