We have a custom developed data provider for VS 2005. It works fine in XP
and Vista 32. It fails to install under Vista 64.
We have the GUIDS for installation under XP and Vista 32, but I cannot find
how to install a custom provider under 64 bit.
Guid StandardDataProviderGuid = new
Guid("{3595FB66-6B40-4b88-9F97-71A252DDF2DA}");
Guid StandardDataSourcesGuid = new
Guid("{2C90F4E1-DC58-479d-9AE6-2CCF76FFAB83}");
I don't know who found these originally, but I can't find them anywhere.
This is the registry path for 32 bit systems:
string regName =
String.Format("Software\\Microsoft\\{0}\\{1}\\DataProviders", keyname,
RegRoot);
We create a subkey under that and install our custom provider.
I verified that the machine.config files (32 and 64 versions) are both being
edited fine (and the assembly is in the GAC).
Any help would be greatly appreciated.
Hi,
Visual Studio 2005 only has 32-bit version and runs in WOW64 on 64-bit OS,
which means it can only access redirected 32-bit registry. Please see
"Registry changes in x64-based versions of Windows Server 2003 and in
Windows XP Professional x64 Edition"
(http://support.microsoft.com/kb/896459) for more information.
Is your setup program a 64-bit one? Also, if this registry is written by
one of your .NET application, remember that for an .NET application
compiled using "Any CPU" (default), it will be JIT-compiled into 64-bit
native application when executed on 64-bit OS. In either case, the registry
will be written to 64-bit area.
Let me know whether or not this is the case. Thanks.
Sincerely,
Walter Wang (wawang@online.microsoft.com, remove 'online.')
Microsoft Online Community Support
==================================================
Get notification to my posts through email? Please refer to
http://msdn.microsoft.com/subscriptions/managednewsgroups/default.aspx#notif
ications. If you are using Outlook Express, please make sure you clear the
check box "Tools/Options/Read: Get 300 headers at a time" to see your reply
promptly.
Note: The MSDN Managed Newsgroup support offering is for non-urgent issues
where an initial response from the community or a Microsoft Support
Engineer within 1 business day is acceptable. Please note that each follow
up response may take approximately 2 business days as the support
professional working with you may need further investigation to reach the
most efficient resolution. The offering is not appropriate for situations
that require urgent, real-time or phone-based interactions or complex
project analysis and dump analysis issues. Issues of this nature are best
handled working with a dedicated Microsoft Support Engineer by contacting
Microsoft Customer Support Services (CSS) at
http://msdn.microsoft.com/subscriptions/support/default.aspx.
==================================================
This posting is provided "AS IS" with no warranties, and confers no rights.
EmeraldShield - 24 Mar 2007 05:36 GMT
Hello Walter,
> Is your setup program a 64-bit one? Also, if this registry is written by
> one of your .NET application, remember that for an .NET application
> compiled using "Any CPU" (default), it will be JIT-compiled into 64-bit
> native application when executed on 64-bit OS. In either case, the
> registry
> will be written to 64-bit area.
I did not think about the JIT being able to recompile to 64 bit.
No, it is a 32 bit setup, but it does Exec to call several Dot Net 2 (Any
CPU) applications to build the registry entries we need.
Is there a way through Dot Net to write to the 32 bit registry even when you
have been compiled? Or a way to tell the JIT engine not to convert to 64
bit?
EmeraldShield - 25 Mar 2007 05:14 GMT
Thank you Walter for you excellent support as always.
> Let me know whether or not this is the case. Thanks.
Yes, this was the case. I added a test to look in the 32 bit registry
subkey of the 64 bit registry and that solved the problem.
I didn't think about the fact that the managed code would be promoted to 64
bit during JIT.
Thanks
Walter Wang [MSFT] - 26 Mar 2007 04:00 GMT
Hi,
Thanks for the update and letting me know the suggestion worked.
To compile for specific platform, you could use following steps:
1) Click on menu "Build/Configuration Manager".
2) In the listview that lists "Project contexts", click on the dropdown
arrow of column "Platform", select "<New...>", in the "New Project
Platform" dialog, select "x64" in "New platform" field.
Regards,
Walter Wang (wawang@online.microsoft.com, remove 'online.')
Microsoft Online Community Support
==================================================
When responding to posts, please "Reply to Group" via your newsreader so
that others may learn and benefit from your issue.
==================================================
This posting is provided "AS IS" with no warranties, and confers no rights.