Origin of MSSqlLocalDB and ProjectsV## - visual-studio

I previously had only SQL version 12 of both (localdb)\ProjectsV12 and (localdb)\MSSQLLocalDB
This is when I had VS 2015 Update 1 installed, along with SSDT tools(for database projects).
I installed Update 2 and now have:
Notice MSSQLLocalDB is still on the old version.
However, a coworker did a fresh install of VS 2015 and has this:
So they are on a newer version of MSSQLLocalDB, and I am on an older. Even though we are both up to Update 2 of Visual Studio.
I had hoped to move to using the version independent name of MSSQLLocalDB. The problem is, this won't work if everyone is on different versions, because I have the build setup to deploy the Database project to localdb, which requires use of SqlPackage, which is version specific:
C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\SQLDB\DAC\120\SqlPackage.exe
I want to understand where and how MSSQLLocalDB gets installed and updated. I'm pretty sure ProjectsV12/13 comes as part of the Visual Studio install.
What installs MSSQLLocalDB, and what updates it?
Duplicate
The proposed duplicate just describes the MSSQLLocalDB as "the SQL Server 2014 LocalDB default instance name". This doesn't say anything about what it is installed as part of, or what updates it. Thanks

There are several related questions here.
What version of SqlPackage.exe to use
SqlPackage and all the SSDT tools are backwards compatible to SQL Server 2005. You should use the following 130 version to run against any database. It has the latest bug fixes and can target all publicly released SQL versions:
C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\SQLDB\DAC\130\SqlPackage.exe
This will work against MSSQLLocalDB regardless of whether it is v13.0 or v12.0.
LocalDB Instances - how are they created and managed
MSSqlLocalDB is a default instance always installed on the machine. The ProjectsV12 and ProjectsV13 are created by SSDT using the LocalDB API. The purpose of having separate versions is
To keep isolation from the default instance, since this is used by many other processes & project types
To ensure we have a known version (e.g v13) so that we can reliably publish with the latest SQL Server features to it
Why do you and your coworker have different instances
Your coworker installed VS2015 Update 2 directly, with no previous version installed. This means the older code never created a ProjectsV12 instance on their machine.
What installs MSSQLLocalDB, and what updates it
If you've previously installed LocalDB v12.0 (by using SSDT as part of VS2015 RTM or Update 1), it will have connected to & started MSSqlLocalDB. Hence, it created the instance as version 12.0.
If you never started this instance before (e.g. your colleague's example), then when first started it will be run from the v13.0 LocalDB and hence get v13.0 as the instance version.
As far as I am aware, it will not be upgraded from v12.0 to v13.0 at any point.
Does MSSqlLocalDB version matter?
This depends. For most testing & ad hoc development this really doesn't matter.
If you care about version, for example if you're creating mdf of .bak files for application use, then you should use the LocalDB APIs to create a specific SQL version. Just download the relevant versioned MSI, install, & use the -version flag during instance creation via the API or command line. This may be the case too if you're using formal SSDT Publish operation instead of F5 deploy, though using the "Allow Incompatible Platform" option should work fine to work around.

Related

Oracle Developer Tools for Visual Studio 2017: Error Message in VS2017 PRO

I have installed Oracle Developer Tools for Visual Studio 2017. I am now finally able to create my database classes within VS2017 without switching back to VS2015.
After the installation I am getting the following error message upon opening an old project and also when creating a new Oracle database connection (in a new project) in Visual Studio 2017:
oracle data provider for .net has been installed without a
machine-wide configuration
(...) Also found anoher version in the GAC that might be incompatible, please uninstall it and restart VS2017
(Poorly translated the german message to english, but you get the point)
Problem is: The version in my GAC is the newer version needed for VS2017. I definitly do not want to uninstall that, but the non machine wide data provider from earlier. I can't find anything about how to do that. Do you guys have any ideas?
Please forgive me if my attempt itself is not smart at all => I haven't installed Oracle Tools for VS before and ran into loads of problems doing so earlier.
Just for the record: I have been trying to google for a solution, but I did not manage to find one. If you got the key-Keywords let me know-
I installed this Version from 6th july 2017
Oracle Developer Tools for Visual Studio 2017 (12.2.0.1.0)
This download includes:
Oracle Developer Tools for Visual Studio 12.2.0.1.0 Oracle Data
Provider for .NET 4, Managed Driver 12.2.0.1.0 Oracle Providers for
ASP.NET 4 12.2.0.1.0
I did a lot of installing of the Oracle tools before getting it to work. Not an expert, but I found many installations of my "Oracle Home". In order to uninstall versions that I did not want, I used the Oracle Universal Installer. This is found (for Windows 7) in "Start Menu -> All Programs -> Oracle-Ora Client-your specific client -> Oracle Installation Products.
Run the installer and choose which oracle home you want to uninstall. You should be able to determine which one is the one that you want to uninstall by looking at Registry Keys, HKLM->Software->Oracle. Also HKLM->SOFTWARE->Wow6432Node->ORACLE. There may be others, search for Oracle keys.
SO figure out which oracle home you want to uninstall and use the Universal Installer to remove it. This should preserve the installation that you want and remove the one you don't. I'm not an expert, just offering what has worked for me.
In Visual Studio 2017, when I create new connection (using the wizard), there is a hard-coded path to a TNSNAMES.ORA file, that can't be changed through the wizard. It is set up through the above-mentioned registry keys. This is key to mapping your Data Source to an actual database. Hope this is helpful.

Visual Studio 2013 connection with Firebird

Though this is not programming specific problem, I hope this is also the right place to ask this.
I'm having problems using Firebird DB with Visual Studio.
I had previously installed FirebirdClient v4.2.0.0 and DDEX v3.0.1.0, but in my project I used newest version of client and there was a mismatch between the two when adding new ADO.net models (connection in Databases window was working perfectly fine).
So I uninstalled the v4.2 and installed newest version (4.6.2.0), but now when I try to add new connection:
Visual Studio 2013 Pro crashes after entering one letter into any of the textboxes:
I tried:
relaunching VS
reinstalling both FirebirdClient v.4.6.2 and DDEX v.3.0.1
but nothing seems to help. Anything I missed I can do to make this work?
I had also downloaded some NuGet packages, but since I even tried this with closed solution I don't suppose this is project-related issue.
Some further notes:
I've read about GAC and the need of adding the assemblies into it, but as far as I understand, in the newest versions of Firebird .Net Provider it is done automatically
My specs:
Win 8.1 Pro
VS Pro 2013
Firebird 2.5.2
FB .Net Provider 4.6.2
DDEX 3.0.1
I had the same Problem and the solution was to uninstall the DDEX 3.0.1 and FB.Net Provider. Remove all Firebird entries from the machine.config provider section. Reinstall both and it should work again, the uninstaller of the Provider doesn't remove this entries so Visual Studio crashes.
The machine config is located under:
32-bit
%windir%\Microsoft.NET\Framework[version]\config\machine.config
64-bit
%windir%\Microsoft.NET\Framework64[version]\config\machine.config

Oracle development tools for visual studio not installing [duplicate]

Having installed managed ODP.NET on my computer, the ODP.NET Managed Driver does not appear inside the Choose Data Source dialog in Visual Studio 2013 Professional.
This is how it should look like:
This is how it actually looks on my machine:
I've followed the steps described in the "An Easy Drive to .NET" article on the Oracle website.
I've also installed the Oracle Developer Tools for Visual Studio. Still no managed driver to select.
My question:
Is there anything I forgot to do in order to make the data provider appear?
The generic answer to this question is "(Re)install 'Oracle Developer Tools for Visual Studio' (ODT)". Simply getting ODP.NET from Nuget or from other sources is not enough to take advantage of Visual Studio integration. You must install ODT also.
Download "ODTwithODAC":
http://www.oracle.com/technetwork/topics/dotnet/utilsoft-086879.html
Update 4/2018: If you are using Visual Studio 2017 Community edition, please upgrade to version 12.2.0.1.1 or later. That is the first version that works with VS 2017 CE: http://www.oracle.com/technetwork/topics/dotnet/downloads/odacmsidownloadvs2017-3806459.html
As you noticed, sometimes installations get munged. So if you do not see the driver in the dialogs or are getting generic (non-oracle ORA-) errors when you try to use features then you should reinstall ODT.
Open your Registry editor and check if RegKey HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319\AssemblyFoldersEx\odp.net.managed exists. It contains only the (Default) value with location of your Oracle.ManagedDataAccess.dll.
Add the key in case it is missing, example:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319\AssemblyFoldersEx\odp.net.managed]
#="c:\\oracle\\product\\12.1\\odp.net\\managed\\common"
You can also try the Oracle config scripts at {ORACLE HOME}\odp.net\managed\x64\configure.bat and {ORACLE HOME}\odp.net\managed\x86\configure.bat, they should do the same
Then check your compile options whether you selected target Framework at least to .NET Framework 4.
Update for Release 12.2
Key odp.net.managed seems to be used in old version 12.1. Latest release uses Oracle.ManagedDataAccess:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319\AssemblyFoldersEx\Oracle.ManagedDataAccess]
#="C:\\oracle\\product\\12.2\\Client_x64\\odp.net\\managed\\common"
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319\AssemblyFoldersEx\Oracle.ManagedDataAccess.EntityFramework6]
#="C:\\oracle\\product\\12.2\\Client_x64\\odp.net\\managed\\common\\EF6"
While Wernfried posted his answer I tried at the same time the following approach:
Uninstall any previously installed Oracle packages/drivers.
Restart Visual Studio.
After these steps, the drivers were present:
I'm still not 100% sure, why a simple uninstall fixes something.
Old post but same issue. THe root cause is - i think - if you have VS 2022 installed the ODT for VS 2017 or 2019 does not install properly. I had to uninstall all versions of VS, reinstall VS 2017, reinstall ODTwithODAC183. Ensure that it can actually find the latest version of VS 2017 - I used the Visual Studio installer and it installed the latest version of VS 2017 Pro. I think that made a difference too. It looks like otherwise the installer won't find VS 2017 properly (if 2022 is installed) and the whole thing is fubar.
To test if it's installed correctly, add a entity data model and you should be able to see the oracle option in the data source list.
I has same error. Since I installed vs2015 Update 3.
solve
Reinstall Oracle Developer Tools for Visual Studio 2015.
http://www.oracle.com/technetwork/topics/dotnet/downloads/odacmsidownload-2745497.html
ref
https://community.oracle.com/thread/648192

Oracle.DataAccess.dll not in Visual Studio 2008 ".NET" reference list

I've got two Windows XP machines with both Visual Studio 2008 and Oracle Client 10.0.2.0.1 installed. One is a development machine and the other one a dedicated build machine. The machines were probably not set up the same way.
On my development machine, I've included Oracle.DataAccess.dll (version 10.2.0.1.100, not the asp.net v 2.x one) in a C# project. Note that the System.Data.OracleClient dll is insufficient (I don't properly remember why, I think it had something to do with bulk insertion/selection).
I was able to select that DLL from the Project->Add Reference dialog in the .NET tab.
Now on the build machine, I cannot build the project as it cannot find the .dll. The .dll is located in the same folder as on the development machine, (<installdir>\10.2.0\client_1\bin\Oracle.DataAccess.dll) in the same version.
The .dll is however not displayed in the .NET tab.
I tried (re)installing ODAC with ODP.Net for VS 2008 but it didn't change anything. When looking at the registry, I realized that my Development machine had a registry folder
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft.NETFramework\AssemblyFolders\ODP.Net]
which points to the bin directory of my oracle installation. This entry does not exist on the build machine. Unfortunately, manually adding the key did not make Visual Studio find it (I've tried rebooting).
My main question is:
What do I have to do so the Build Machine automatically finds the Oracle.DataAccess.dll? (Note: manually adding the .dll each time the solution is changed would work, but that is not an option).
You can maybe help me out already by answering one of the following subquestions:
Which installer sets that registry entry?
Do I maybe have to reinstall the whole Oracle Client in a different configuration? (e.g. ADMIN)
Do I need more than just the Oracle Client, ODAC and .NET installed?
I managed to resolve the issue by completely uninstalling the Oracle Client on the build machine, then doing a fresh installation using the Administrator configuration rather than the Developer configuration.
Note that installing the Administrator configuration on top of the existing oracle installation did not work.

SSIS packages failing to load in VS 2008

I have a problem when trying to load an SSIS package in VS 2008. In the about it says it has "SQL Server Integration Services" installed but on loading a package I get a message that says:
Microsoft Vistual Studio is unable to load this document:
To design
Integration Services packages in Business Intelligence Development
Studio, Integration Services has to be installed by one of these
editions of SQL Server 2008: Standard, Enterprise, Developer or
Evaluation. To install Integration Services, run SQL Server Setup and
select Integration Services.
I thought maybe it was a version problem so I thought I'd look at a new Intergation Services project to play spot the difference. However when I told visual studio to create a new IS project (which was in the list quite happily) it created it and then gave me the above error message again.
To give some idea about my environment I have several version of Visual Studio (2k5, 2k8, 2k10) and several version of SQL server (2k5, 2k8) so I don't know if there is some confusion between versions...
The other thing that I am wondering is if there is a problem with what order things got installed in (ie my VS2008 wasn't installed when SSIS stuff was installed).
I am hoping there is a simple approach to this that won't mean reinstalling things. I can go to our IT to ask them to try to get it working but that would take some time. If it does come to that though I'd like to have some idea of what I should ask them to install since it does seem to be all installed currently...
So if anybody can either a) help me work out precisely what components are installed and what is missing that would be great. Bonus points for helping fix it without needing the install media...
Edit: A thought occurs to me. Coudl it be that I only have 2005 Integration Services installed? If so how can I determine that? And I still am not sure why VS is behaving as it is and letting me create a project but no SSIS in it, even if they were older versions...
Edit: Also it seems that if I load up VS 2005 I can create IS projects but of course can't load up the newer SSIS packages, I assume because they are from a newer version maybe...
Edit: Version information for SSIS in VS 2008:
Microsoft SQL Server Integration Services Designer
Version 10.0.1600.22 ((SQL_PreRelease).080709-1414 )
The following line can tell you the version of the package:
<DTS:Property DTS:Name="PackageFormatVersion">3</DTS:Property>
3 is for 2008, 2 is 2005 and 6 is 2012.
By the way, how patched is your system? The 10.0.1600.22 does sound like the original installation of 2008. Try to install SP3 and the latest cumulative update - this will bring your installation to 10.00.5788 and the issue might go away.
If you previously had the components from a Express 2008 installation, and then you install an Standard, Enterprise, Developer or Evaluation, instead of actually installing a new instance/components (probably you see Integration Services grayed out) use the Upgrade option of the SQL Server 2008 setup, and then VS will load perfectly the DTSX file.

Resources