Browse Source

Merge branch 'master' into newNR

addin-manager-package-subdirectories
Matt Ward 13 years ago
parent
commit
44764b87d6
  1. 11
      samples/Mono/Mono.Build.Tasks/MonoToolLocationHelper.cs
  2. 10
      src/AddIns/BackendBindings/FSharpBinding/FSharpProject.cs
  3. 13
      src/AddIns/BackendBindings/FSharpBinding/ProjectHelpers.cs

11
samples/Mono/Mono.Build.Tasks/MonoToolLocationHelper.cs

@ -200,7 +200,7 @@ namespace Mono.Build.Tasks
static string ReadRegistryValue(string keyName, string name) static string ReadRegistryValue(string keyName, string name)
{ {
try { try {
RegistryKey key = Registry.LocalMachine.OpenSubKey(keyName); RegistryKey key = OpenLocalMachineOrUserRegistryKey(keyName);
if (key != null) { if (key != null) {
string readValue = (string)key.GetValue(name); string readValue = (string)key.GetValue(name);
key.Close(); key.Close();
@ -212,5 +212,14 @@ namespace Mono.Build.Tasks
return String.Empty; return String.Empty;
} }
static RegistryKey OpenLocalMachineOrUserRegistryKey(string keyName)
{
RegistryKey key = Registry.CurrentUser.OpenSubKey(keyName);
if (key != null) {
return key;
}
return Registry.LocalMachine.OpenSubKey(keyName);
}
} }
} }

10
src/AddIns/BackendBindings/FSharpBinding/FSharpProject.cs

@ -33,6 +33,16 @@ namespace FSharpBinding
{ {
return new FSharpProjectBehavior(this, base.CreateDefaultBehavior()); return new FSharpProjectBehavior(this, base.CreateDefaultBehavior());
} }
public void DisableWatcher()
{
watcher.Disable();
}
public void EnableWatcher()
{
watcher.Enable();
}
} }
public class FSharpProjectBehavior : ProjectBehavior public class FSharpProjectBehavior : ProjectBehavior

13
src/AddIns/BackendBindings/FSharpBinding/ProjectHelpers.cs

@ -45,7 +45,18 @@ namespace FSharpBinding
if (d.TryGetValue(node, out xmlElem)) if (d.TryGetValue(node, out xmlElem))
itemNode.AppendChild(xmlElem); itemNode.AppendChild(xmlElem);
} }
doc.Save(project.FileName);
SaveProjectXml(doc, project as FSharpProject);
}
static void SaveProjectXml(XmlDocument doc, FSharpProject project)
{
project.DisableWatcher();
try {
doc.Save(project.FileName);
} finally {
project.EnableWatcher();
}
} }
} }

Loading…
Cancel
Save