|
|
|
@ -48,24 +48,35 @@ namespace ICSharpCode.SharpDevelop.Project
@@ -48,24 +48,35 @@ namespace ICSharpCode.SharpDevelop.Project
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
[DefaultValue("global")] |
|
|
|
|
[LocalizedProperty("${res:ICSharpCode.SharpDevelop.Internal.Project.ProjectReference.Aliases}", |
|
|
|
|
Description = "${res:ICSharpCode.SharpDevelop.Internal.Project.ProjectReference.Aliases.Description}")] |
|
|
|
|
public string Aliases { |
|
|
|
|
get { |
|
|
|
|
return GetEvaluatedMetadata("Aliases", "global"); |
|
|
|
|
} |
|
|
|
|
set { |
|
|
|
|
SetEvaluatedMetadata("Aliases", value); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
[DefaultValue(false)] |
|
|
|
|
[LocalizedProperty("${res:ICSharpCode.SharpDevelop.Internal.Project.ProjectReference.SpecificVersion}", |
|
|
|
|
Description = "${res:ICSharpCode.SharpDevelop.Internal.Project.ProjectReference.SpecificVersion.Description}")] |
|
|
|
|
public bool SpecificVersion { |
|
|
|
|
get { |
|
|
|
|
return GetEvaluatedMetadata("SpecificVersion", true); |
|
|
|
|
return GetEvaluatedMetadata("SpecificVersion", false); |
|
|
|
|
} |
|
|
|
|
set { |
|
|
|
|
SetEvaluatedMetadata("SpecificVersion", value); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
[DefaultValue(true)] |
|
|
|
|
[LocalizedProperty("${res:ICSharpCode.SharpDevelop.Internal.Project.ProjectReference.LocalCopy}", |
|
|
|
|
Description = "${res:ICSharpCode.SharpDevelop.Internal.Project.ProjectReference.LocalCopy.Description}")] |
|
|
|
|
public bool Private { |
|
|
|
|
get { |
|
|
|
|
return GetEvaluatedMetadata("Private", true); |
|
|
|
|
return GetEvaluatedMetadata("Private", !IsGacReference); |
|
|
|
|
} |
|
|
|
|
set { |
|
|
|
|
SetEvaluatedMetadata("Private", value); |
|
|
|
@ -131,6 +142,7 @@ namespace ICSharpCode.SharpDevelop.Project
@@ -131,6 +142,7 @@ namespace ICSharpCode.SharpDevelop.Project
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
[ReadOnly(true)] |
|
|
|
|
public override string FileName { |
|
|
|
|
get { |
|
|
|
|
if (Project != null) { |
|
|
|
@ -138,9 +150,9 @@ namespace ICSharpCode.SharpDevelop.Project
@@ -138,9 +150,9 @@ namespace ICSharpCode.SharpDevelop.Project
|
|
|
|
|
string hintPath = HintPath; |
|
|
|
|
try { |
|
|
|
|
if (hintPath != null && hintPath.Length > 0) { |
|
|
|
|
return Path.GetFullPath(Path.Combine(projectDir, hintPath)); |
|
|
|
|
return FileUtility.GetAbsolutePath(projectDir, hintPath); |
|
|
|
|
} |
|
|
|
|
string name = Path.GetFullPath(Path.Combine(projectDir, Include)); |
|
|
|
|
string name = FileUtility.GetAbsolutePath(projectDir, Include); |
|
|
|
|
if (File.Exists(name)) { |
|
|
|
|
return name; |
|
|
|
|
} |
|
|
|
@ -159,6 +171,13 @@ namespace ICSharpCode.SharpDevelop.Project
@@ -159,6 +171,13 @@ namespace ICSharpCode.SharpDevelop.Project
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
[Browsable(false)] |
|
|
|
|
public bool IsGacReference { |
|
|
|
|
get { |
|
|
|
|
return !Path.IsPathRooted(this.FileName); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
AssemblyName GetAssemblyName(string include) |
|
|
|
|
{ |
|
|
|
|
try { |
|
|
|
@ -169,5 +188,71 @@ namespace ICSharpCode.SharpDevelop.Project
@@ -169,5 +188,71 @@ namespace ICSharpCode.SharpDevelop.Project
|
|
|
|
|
|
|
|
|
|
return null; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
protected override void FilterProperties(PropertyDescriptorCollection globalizedProps) |
|
|
|
|
{ |
|
|
|
|
base.FilterProperties(globalizedProps); |
|
|
|
|
PropertyDescriptor privatePD = globalizedProps["Private"]; |
|
|
|
|
globalizedProps.Remove(privatePD); |
|
|
|
|
globalizedProps.Add(new ReplaceDefaultValueDescriptor(privatePD, !IsGacReference)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
sealed class ReplaceDefaultValueDescriptor : PropertyDescriptor |
|
|
|
|
{ |
|
|
|
|
PropertyDescriptor baseDescriptor; |
|
|
|
|
bool newDefaultValue; |
|
|
|
|
|
|
|
|
|
public override bool ShouldSerializeValue(object component) |
|
|
|
|
{ |
|
|
|
|
return (bool)GetValue(component) != newDefaultValue; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public override void ResetValue(object component) |
|
|
|
|
{ |
|
|
|
|
SetValue(component, newDefaultValue); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public ReplaceDefaultValueDescriptor(PropertyDescriptor baseDescriptor, bool newDefaultValue) |
|
|
|
|
: base(baseDescriptor) |
|
|
|
|
{ |
|
|
|
|
this.baseDescriptor = baseDescriptor; |
|
|
|
|
this.newDefaultValue = newDefaultValue; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public override string DisplayName { |
|
|
|
|
get { return baseDescriptor.DisplayName; } |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public override string Description { |
|
|
|
|
get { return baseDescriptor.Description; } |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public override Type ComponentType { |
|
|
|
|
get { return baseDescriptor.ComponentType; } |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public override bool IsReadOnly { |
|
|
|
|
get { return baseDescriptor.IsReadOnly; } |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public override bool CanResetValue(object component) |
|
|
|
|
{ |
|
|
|
|
return baseDescriptor.CanResetValue(component); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public override object GetValue(object component) |
|
|
|
|
{ |
|
|
|
|
return baseDescriptor.GetValue(component); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public override void SetValue(object component, object value) |
|
|
|
|
{ |
|
|
|
|
baseDescriptor.SetValue(component, value); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public override Type PropertyType { |
|
|
|
|
get { return baseDescriptor.PropertyType; } |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|