diff options
author | Dwayne Boone <dwayne@zeroc.com> | 2010-10-06 16:04:45 -0230 |
---|---|---|
committer | Dwayne Boone <dwayne@zeroc.com> | 2010-10-06 16:04:45 -0230 |
commit | 60e29bff09ac36cbc88323ef6de21c111ef72c07 (patch) | |
tree | f5d639daf47a545cc6b5ddfd9d1818185c77cd9e | |
parent | Update to extenstion installer project (diff) | |
download | ice-60e29bff09ac36cbc88323ef6de21c111ef72c07.tar.bz2 ice-60e29bff09ac36cbc88323ef6de21c111ef72c07.tar.xz ice-60e29bff09ac36cbc88323ef6de21c111ef72c07.zip |
Possible fix for bug 4843
-rw-r--r-- | vsplugin/src/Builder.cs | 2 | ||||
-rwxr-xr-x | vsplugin/src/Util.cs | 70 |
2 files changed, 62 insertions, 10 deletions
diff --git a/vsplugin/src/Builder.cs b/vsplugin/src/Builder.cs index 4f496aed656..83299538f16 100644 --- a/vsplugin/src/Builder.cs +++ b/vsplugin/src/Builder.cs @@ -271,6 +271,8 @@ namespace Ice.VisualStudio {
// Call for side-effect of setting environment variable.
Util.getIceHome(p);
+ + Util.verifyProjectSettings(p); if (!Util.isVBProject(p)) { diff --git a/vsplugin/src/Util.cs b/vsplugin/src/Util.cs index 2e0d2f3f898..e5d2e3b008b 100755 --- a/vsplugin/src/Util.cs +++ b/vsplugin/src/Util.cs @@ -64,7 +64,7 @@ namespace Ice.VisualStudio { string found = base.Find(delegate(string s) { - return s.Equals(value, StringComparison.CurrentCultureIgnoreCase); + return s.Equals(value.Trim(), StringComparison.CurrentCultureIgnoreCase); }); return !String.IsNullOrEmpty(found); } @@ -73,7 +73,7 @@ namespace Ice.VisualStudio { string found = base.Find(delegate(string s) { - return s.Equals(value, StringComparison.CurrentCultureIgnoreCase); + return s.Equals(value.Trim(), StringComparison.CurrentCultureIgnoreCase); }); if(!String.IsNullOrEmpty(found)) @@ -298,7 +298,7 @@ namespace Ice.VisualStudio {
iceIncludeDir = Path.Combine(iceIncludeDir, "cpp");
}
- iceIncludeDir = quote(Path.Combine(iceIncludeDir, "include"));
+ iceIncludeDir = Path.Combine(iceIncludeDir, "include");
string additionalIncludeDirectories = tool.AdditionalIncludeDirectories;
if (String.IsNullOrEmpty(additionalIncludeDirectories))
@@ -309,10 +309,11 @@ namespace Ice.VisualStudio ComponentList includes = new ComponentList(additionalIncludeDirectories);
bool changed = false;
- if (!includes.Contains(iceIncludeDir))
+ if (!includes.Contains(iceIncludeDir) && !includes.Contains(quote(iceIncludeDir)))
{
+ changed = true;
- includes.Add(iceIncludeDir);
+ includes.Add(quote(iceIncludeDir));
}
if (!includes.Contains("."))
@@ -386,7 +387,7 @@ namespace Ice.VisualStudio }
System.Windows.Forms.MessageBox.Show("Could not locate '" + component +
- ".dll'. Review you 'Ice Home' setting.",
+ ".dll'. Review your 'Ice Home' setting.",
"Ice Visual Studio Extension", MessageBoxButtons.OK,
MessageBoxIcon.Error,
System.Windows.Forms.MessageBoxDefaultButton.Button1,
@@ -633,19 +634,18 @@ namespace Ice.VisualStudio iceLibDir += "\\x64";
}
}
- iceLibDir = quote(iceLibDir);
string additionalLibraryDirectories = tool.AdditionalLibraryDirectories;
if (String.IsNullOrEmpty(additionalLibraryDirectories))
{
- tool.AdditionalLibraryDirectories = iceLibDir;
+ tool.AdditionalLibraryDirectories = quote(iceLibDir);
return;
}
ComponentList libs = new ComponentList(additionalLibraryDirectories);
- if (!libs.Contains(iceLibDir))
+ if (!libs.Contains(iceLibDir) && !libs.Contains(quote(iceLibDir)))
{
- libs.Add(iceLibDir);
+ libs.Add(quote(iceLibDir));
tool.AdditionalLibraryDirectories = libs.ToString();
return;
}
@@ -1596,5 +1596,55 @@ namespace Ice.VisualStudio {
return "\"" + arg + "\"";
}
+ + public static void verifyProjectSettings(Project project) + { + if (isCppProject(project)) + { + addIceCppConfigurations(project, getIceHomeRaw(project, false)); + } + else + { + string iceHome = getIceHome(project);
+
+ string binDir = iceHome; + foreach (string dir in _csBinDirs)
+ {
+ if (Directory.Exists(binDir + dir))
+ {
+ binDir += dir; + break; + } + } + + ComponentList components = Util.getIceDotNetComponents(project);
+ foreach (string component in components)
+ {
+ if (String.IsNullOrEmpty(component))
+ {
+ continue;
+ }
+ + + string reference = binDir + component + ".dll"; +
+ foreach (Reference r in ((VSProject)project.Object).References)
+ { + if (r.Identity.Equals(component, StringComparison.OrdinalIgnoreCase)) + { + if(!r.Path.Equals(reference, StringComparison.OrdinalIgnoreCase)) + { + bool copyLocal = getCopyLocal(project, component);
+ Util.removeDotNetReference(project, component);
+
+ Util.addDotNetReference(project, component, iceHome);
+ setCopyLocal(project, component, copyLocal);
+ } + break; + } + } + } + } + } } } |