summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDwayne Boone <dwayne@zeroc.com>2010-10-06 16:04:45 -0230
committerDwayne Boone <dwayne@zeroc.com>2010-10-06 16:04:45 -0230
commit60e29bff09ac36cbc88323ef6de21c111ef72c07 (patch)
treef5d639daf47a545cc6b5ddfd9d1818185c77cd9e
parentUpdate to extenstion installer project (diff)
downloadice-60e29bff09ac36cbc88323ef6de21c111ef72c07.tar.bz2
ice-60e29bff09ac36cbc88323ef6de21c111ef72c07.tar.xz
ice-60e29bff09ac36cbc88323ef6de21c111ef72c07.zip
Possible fix for bug 4843
-rw-r--r--vsplugin/src/Builder.cs2
-rwxr-xr-xvsplugin/src/Util.cs70
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;
+ }
+ }
+ }
+ }
+ }
}
}