Missing HintPaths in Generated csproj file

Posts   
 
    
Teresa
User
Posts: 4
Joined: 11-Feb-2011
# Posted on: 11-Feb-2011 21:46:57   

We have been using LLBLGen successfully for a while but I have run into a problem trying to set up a new machine. The HintPath in the generated csproj file is empty for the runtime library references.

<Reference Include="SD.LLBLGen.Pro.LinqSupportClasses.NET35, Version=3.0.0.0, Culture=neutral, PublicKeyToken=ca73b74ba4e3ff27, processorArchitecture=MSIL"> <SpecificVersion>True</SpecificVersion> <HintPath> </HintPath> </Reference> <Reference Include="SD.LLBLGen.Pro.ORMSupportClasses.NET20, Version=3.0.0.0, Culture=neutral, PublicKeyToken=ca73b74ba4e3ff27, processorArchitecture=MSIL"> <SpecificVersion>True</SpecificVersion> <HintPath> </HintPath> </Reference> <Reference Include="SD.LLBLGen.Pro.DQE.SqlServer.NET20, Version=3.0.0.0, Culture=neutral, PublicKeyToken=ca73b74ba4e3ff27, processorArchitecture=MSIL"> <SpecificVersion>True</SpecificVersion> <HintPath> </HintPath> </Reference>

My command line for generating the code is:

"%ProgramFiles(x86)%\Solutions Design\LLBLGen Pro v3.0\cligenerator" %Schema%..\Mapper\SchemaMapper.llblgenproj %Namespace% C# ".NET 3.5" SelfServicing SD.Presets.SelfServicing.General2008 ..\GeneratedModel 0 %Schema%..\Mapper\Generate.Log

I'm using LLBLGen 3.0. The machine that is having the trouble is a 64 bit machine but otherwise is building the same code set.

Note: this project file did start off as a 2.6 project.

Any help is appreciated...

Thanks,

Teresa

daelmo avatar
daelmo
Support Team
Posts: 8245
Joined: 28-Nov-2005
# Posted on: 12-Feb-2011 05:31:17   

So, if you use this is a 86x machine everything works just fine? Does the same happen if you generate from LLBLGen Designer instead of cligenerator?

David Elizondo | LLBLGen Support Team
Otis avatar
Otis
LLBLGen Pro Team
Posts: 39908
Joined: 17-Aug-2003
# Posted on: 12-Feb-2011 10:31:25   

Did you run the installer on the new machine or just copied over the installation folder? the hint path is obtained from the registry

Frans Bouma | Lead developer LLBLGen Pro
Teresa
User
Posts: 4
Joined: 11-Feb-2011
# Posted on: 13-Feb-2011 15:40:17   

It was installed but by another account on the same machine so I tried uninstalling and reinstalling but it did not help.

Also, the results are the same if I generate the code in the UI or with the command line.

Otis avatar
Otis
LLBLGen Pro Team
Posts: 39908
Joined: 17-Aug-2003
# Posted on: 13-Feb-2011 16:39:46   

Could you try to generate into an empty directory? The hintpaths aren't updated if the csproj file exists. They're only written in a new csproj file.

Frans Bouma | Lead developer LLBLGen Pro
Teresa
User
Posts: 4
Joined: 11-Feb-2011
# Posted on: 14-Feb-2011 20:21:06   

The HintPaths are empty even if the initial directory is empty.

I did notice that the key that was installed in the registry is

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Solutions Design\LLBLGen Pro

Could the added node in the path be an issue?

Otis avatar
Otis
LLBLGen Pro Team
Posts: 39908
Joined: 17-Aug-2003
# Posted on: 14-Feb-2011 20:32:27   

No the reg key is under HKLM\SOFTWARE\Microsoft.NETFramework<version>

There a key called 'AssemblyFoldersEx' is located, as well as an AssemblyFolders key one level higher. Below these keys, the library paths should be present. I suspect the keys were added to the 32bit registry but not the 64bit registry (which is another registry). If you run the designer as 32bit app (using the runner, see start menu) does that change (generate in empty folder, as described above)

Frans Bouma | Lead developer LLBLGen Pro
Teresa
User
Posts: 4
Joined: 11-Feb-2011
# Posted on: 14-Feb-2011 21:21:03   

Yes that did it!simple_smile

I added the keys in the 64 bit area and now the cliGenerator works as well

Thanks for the support,

Teresa

Otis avatar
Otis
LLBLGen Pro Team
Posts: 39908
Joined: 17-Aug-2003
# Posted on: 14-Feb-2011 23:17:45   

Teresa wrote:

Yes that did it!simple_smile

I added the keys in the 64 bit area and now the cliGenerator works as well

Thanks for the support,

Teresa

So we have to add that to the installer. We'll look into that simple_smile

Frans Bouma | Lead developer LLBLGen Pro
Otis avatar
Otis
LLBLGen Pro Team
Posts: 39908
Joined: 17-Aug-2003
# Posted on: 15-Feb-2011 10:38:51   

Next 3.1 installer will add the proper 64bit registry keys. They're added to the 32bit section only because the installer itself is 32bit. SetRegView in NSIS allows you to set it to the proper view of the registry to add / remove the keys simple_smile

Frans Bouma | Lead developer LLBLGen Pro
Jian
User
Posts: 5
Joined: 28-Mar-2011
# Posted on: 28-Mar-2011 22:53:00   

I installed v3.1 version and have issue with the HintPath. It is empty in the generated project file. This is on a 64bit windows 7 machine. I checked the registry and it looks fine. I tried both the command line and app (even the as 32bit not work). Is there any idea what could be wrong?

Thanks in advacne.

daelmo avatar
daelmo
Support Team
Posts: 8245
Joined: 28-Nov-2005
# Posted on: 29-Mar-2011 06:51:50   

Jian wrote:

I installed v3.1 version and have issue with the HintPath

Did you get the latest installer? What is the build number?

Jian wrote:

It is empty in the generated project file. This is on a 64bit windows 7 machine. I checked the registry and it looks fine.

The 64bit registry? Do you see the reg key?

David Elizondo | LLBLGen Support Team
Jian
User
Posts: 5
Joined: 28-Mar-2011
# Posted on: 29-Mar-2011 15:38:36   

It is the latest v3.1 on the web. Build date 03/16/2011. The registries I checked are [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft.NETFramework\v2.0.50727\AssemblyFoldersEx\LLBLGen Pro Runtime Libraries v3.1] @="C:\Program Files (x86)\Solutions Design\LLBLGen Pro v3.1\Frameworks\LLBLGen Pro\RuntimeLibraries\Net2.0\"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft.NETFramework\v3.5\AssemblyFoldersEx\LLBLGen Pro Runtime Libraries v3.1] @="C:\Program Files (x86)\Solutions Design\LLBLGen Pro v3.1\Frameworks\LLBLGen Pro\RuntimeLibraries\Net3.5\"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft.NETFramework\v4.0\AssemblyFoldersEx\LLBLGen Pro Runtime Libraries v3.1] @="C:\Program Files (x86)\Solutions Design\LLBLGen Pro v3.1\Frameworks\LLBLGen Pro\RuntimeLibraries\Net4.0\"

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft.NETFramework\v2.0.50727\AssemblyFoldersEx\LLBLGen Pro Runtime Libraries v3.1] @="C:\Program Files (x86)\Solutions Design\LLBLGen Pro v3.1\Frameworks\LLBLGen Pro\RuntimeLibraries\Net2.0\"

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft.NETFramework\v3.5\AssemblyFoldersEx\LLBLGen Pro Runtime Libraries v3.1] @="C:\Program Files (x86)\Solutions Design\LLBLGen Pro v3.1\Frameworks\LLBLGen Pro\RuntimeLibraries\Net3.5\"

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft.NETFramework\v4.0\AssemblyFoldersEx\LLBLGen Pro Runtime Libraries v3.1] @="C:\Program Files (x86)\Solutions Design\LLBLGen Pro v3.1\Frameworks\LLBLGen Pro\RuntimeLibraries\Net4.0\"

Otis avatar
Otis
LLBLGen Pro Team
Posts: 39908
Joined: 17-Aug-2003
# Posted on: 29-Mar-2011 16:08:02   

It should have been added by the installer to the 64bit AND 32bit registry. It depends on what you use to start the designer though: it's a 32bit application by default, so when you simply start the designer, it's a 32bit app on 64bit windows and it will look in the 32bit registry.

You have the keys in both the 32bit (the WoW hive in the tree) and 64bit (normal tree in regedit) registry?

Frans Bouma | Lead developer LLBLGen Pro
Jian
User
Posts: 5
Joined: 28-Mar-2011
# Posted on: 29-Mar-2011 16:12:34   

Yes. Please look the above message for registry detail.

Jian
User
Posts: 5
Joined: 28-Mar-2011
# Posted on: 29-Mar-2011 16:40:43   

I downloaded the source code and looked ProjectFileCreator::GetRuntimeLibraryPath(). It seems still look at v3.0 path. private static string GetRuntimeLibraryPath(string dotnetVersion) { string toReturn = string.Empty; try { // use AssemblyFolderEx system. string regKeyName; switch(dotnetVersion) { case ".NET20": regKeyName = @"Software\Microsoft.NETFramework\v2.0.50727\AssemblyFoldersEx\LLBLGen Pro Runtime Libraries v3.0"; break; case ".NET35": regKeyName = @"Software\Microsoft.NETFramework\v3.5\AssemblyFoldersEx\LLBLGen Pro Runtime Libraries v3.0"; break; default: regKeyName = @"Software\Microsoft.NETFramework\AssemblyFolders\LLBLGenPro.30.RuntimeLibraries" + dotnetVersion; break; } ... I'm not sure is this the matching source code. Also, the SD.LLBLGen.Pro.TaskPerformers.pdb is not matching the DLL.

Jian
User
Posts: 5
Joined: 28-Mar-2011
# Posted on: 29-Mar-2011 16:48:39   

I modified the registry to v3.0 and both the Designer and command line works.

Otis avatar
Otis
LLBLGen Pro Team
Posts: 39908
Joined: 17-Aug-2003
# Posted on: 29-Mar-2011 18:09:22   

Indeed a bug. We'll update that a.s.a.p. Sorry for the inconvenience this caused.

Frans Bouma | Lead developer LLBLGen Pro
Otis avatar
Otis
LLBLGen Pro Team
Posts: 39908
Joined: 17-Aug-2003
# Posted on: 30-Mar-2011 10:50:47   

Fixed in next build.

Frans Bouma | Lead developer LLBLGen Pro