yasser777 / nettiers

Automatically exported from code.google.com/p/nettiers
0 stars 0 forks source link

Library path (relative) is resolved incorrectly for VS projects #428

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. Define an output path relatively as a subdirectory for the one you run the 
generator in. Library path can be the default one. Like '<property 
name="OutputDirectory">Output</property>
<property name="LibraryPath">References</property>'
2. Run the generator.
3. Check the references' hint paths in .csproj files

What is the expected output? What do you see instead?
Hint paths should point to your defined library path ('..\References').
They point to '..\..\References' instead.

What version of .netTiers and CodeSmith are you using?
.NetTiers 2.3.1, CS 5.1

Please provide any additional information below.

I found an old issue (#5) about the same as this one, but it was already closed 
in 2008. The fix for that one is no good for this so I'm  creating a new one. 

My fix would be:

Index: C:/Projects/Tools/.netTiers/nettiers/Source/NetTiers.cst
===================================================================
--- C:/Projects/Tools/.netTiers/nettiers/Source/NetTiers.cst    (revision 891)
+++ C:/Projects/Tools/.netTiers/nettiers/Source/NetTiers.cst    (working copy)
@@ -2970,15 +2970,15 @@
        bool pathFound = false;
        string otherPath = "";

-       //We will default the path to the Directory below the library path if no 
other path is found
+       //We will default the path to the Directory below the Output path if no 
other path is found
        string libRelPath = "..\\" + LibraryPath;

        //Find the first path that is not the Reference Folder
        foreach(string directory in Directory.GetDirectories(OutputDirectory))
        {
-           if(directory.ToUpper() != rootPath.ToUpper())
+           if(Path.GetFullPath(directory).ToUpper() != rootPath.ToUpper())
            {
-               otherPath = Path.GetFullPath(Path.Combine(OutputDirectory, directory));
+               otherPath = Path.GetFullPath(Path.Combine(OutputDirectory, 
Path.GetFullPath(directory)));
                pathFound = true;
                break;
            }

Original issue reported on code.google.com by handu...@savageclub.org on 25 Sep 2012 at 5:28