OracleSchemaDiscovery and WCF

Topics: July and December Releases Forum
Jan 29, 2007 at 8:28 PM
Does anyone know how to get the Oracle Schema Discovery package integrated and working with the latest Web Service Software Factory for WCF?
Jan 30, 2007 at 1:25 PM
Can you elaborate further about which kind of integration are you looking for?

Hernan
Jan 30, 2007 at 1:55 PM
Hi,

I have worked on the Oracle version of the DataAccess Guidance Package extensively, though I have not had a chance to bring it in to the December release of the service factory yet.

Here is how I would approach it. The data access guidance package is independent of the ASMX and WCF guidance packages. Knowing this, I would simply overwrite the "C:\Program Files\Microsoft Service Factory\Data Access Guidance Package" folder with the Oracle version.

Keep in mind the version posted does not appear to be the latest. I have posted a question on how to get the latest version up.

Cheers.
Jan 30, 2007 at 7:35 PM
Basically I would like to use the latest WCF Service factory as is, except I need to use Oracle instead of Sql Server for the back end. I've used several of the guidance packages, but I've not built/developed them and I don't have a whole lot of extra time to get into learning this at the moment.

I've downloaded the OracleSchemaDiscovery and compiled, but I don't know what to actually do to use it for a project. There isn't any documenation I can find for doing this.
Jan 30, 2007 at 7:35 PM
Philippe,

I guess you are talking about the version in GDN (Latest drop of Data Access Guidance Mod for Oracle). As far as I know, the changes between this version and the latest included in December release, were not significant (you may loose some synchronization with resposbilities in WCF package). You can try this version for Oracle and feel free to ask for help on hints for how to update it to the latest version.

Hernan
Jan 31, 2007 at 3:41 AM
Just so everyone knows. The OracleSchemaDiscovery drop is available on this community site here. As of the date of this post, it has not been updated to the most current version (according to Philippe, one of its devs), but I'll update it as soon as I get it.

Don
Jan 31, 2007 at 6:00 PM
wesweeks, here are some posts related to installing the guidance packages. They should be helpful.

http://www.gotdotnet.com/codegallery/messageBoard/Thread.aspx?id=6fde9247-53a8-4879-853d-500cd2d97a83&mbid=ffab6207-c8d3-40a7-a507-77d2e4fbae3e&threadid=4780d2a3-06c6-4202-a52d-c769872f0807

http://www.gotdotnet.com/codegallery/messageBoard/Thread.aspx?id=6fde9247-53a8-4879-853d-500cd2d97a83&mbid=fc07ebfb-4369-48e1-ab74-d6098ed220fe&threadid=becdf390-d20d-4d76-bbd7-16462f28128f

Cheers.
Jan 31, 2007 at 7:21 PM
Just an FYI ... I just updated the Oracle Schema Discovery page with the new bits Philippe just sent me. This thread or the comments on the page are good places to ask questions and provide feedback on them. Thanks Philippe,

Don
Feb 7, 2007 at 9:05 PM
Hi, the post by Philippe contains links to posts on the GDN forum. Those posts refer to documentation on how to use the Oracle Data Access Guidance Mod but they don't tell you where the docs are located. Does anyone know of some docs on how to use the Mod?

Also, what is the Oracle Schema Discovery?

Similar to wesweeks, I need to combine the WSSF (WCF) with the Oracle Data Access Mod. Is there any reason I would need the Oracle Schema Discovery?

Thanks in advance...
Feb 8, 2007 at 2:45 PM
Oracle Shema Discovery is one of the projects included in the DataAccess Guidance Package solution. It is absolutely necessary since it contains the code that allows the guidance package to query Oracle schemas.

When you say "how to use the Mod," do you mean how to install it? Or do you mean how to actually use its recipes?
Feb 8, 2007 at 2:54 PM
Edited Feb 8, 2007 at 6:05 PM
Hi Philippe,

Thanks for the response...

I did mean "how to install the projects", since I am assuming that the Oracle Data Access GPkg will function similar to the SQL server GPkg, that is, recipes will be accessible through context menus.

Generally, I am finding documentation difficult to find for WSSF or GAT(GAX)...
Forums have been more helpful than most documentation...

I have modified the WSSF (WCF) guidance package to suit the needs of the project but now I require the use of the Oracle Data Access GP. I have placed both projects (Data Access Guidance Package and Schema Discovery) directly into the modified WSSF solution. I am attempting to register the Oracle Data Access GP but I receive the follwoing error:

Action Register failed to execute:
Guidance package registration depends on an installer project. The package project must have a build dependency with that project, and the installer project must contain a class that inherits from the ManifestInstaller class..

I added a reference in the Data Access project to the Installer project and the package now registers BUT does not show up in Guidance Package Manager list of packages. It also does not function in the WSSF GPkg as it states that it cannot read metadata. I am assuming that I am not using the Oracle Data Access package at all. Note that I have added an EnableDataAccessGuidancePackage Action to add the Package.

Is there anything else required, for example, installation, code-wise, in order to use the Package?



Feb 8, 2007 at 8:37 PM
OK. Here is what you should do to install:

1. Assuming you are working with the December release, navigate to C:\Program Files\Microsoft Service Factory\Source Code.
2. Extract DataAccessGPSource.msi to the default folder or a folder of your choice. I recommend a folder other than the default (Visual Studio 2005\projects) or you will get this error when you build the project: "Cannot write to the output file "obj\Debug\Microsoft.Practices.ServiceFactory.DataAccess.CustomPages.EntitiesFromClassesSelectorCP.resources". The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters."
3. Delete the folder Data Access Guidance Package\SchemaDiscovery.
4. Extract the contents of SchemaDiscovery.zip to the folder Data Access Guidance Package, with the option to use folder names.
5. Delete the folder Data Access Guidance Package\Data Access Guidance Package\Data Access Guidance Package.
6. Extract Data Access Guidance Package.zip to the folder Data Access Guidance Package\Data Access Guidance Package.
7. Open Data Access Guidance Package.sln.
8. Build the solution, just to make sure you do not run into an issue (I didn't).
9. In Visual Studio 2005, go to Tools, Guidance Package Manager, and click on Enable/Disable Packages. Check the box next to Guidance Package Development. Click OK, then Click Close.
10. Select the DataAccess Guidance Package project, right-click, and select Register Guidance Package.
11. Once the registration has succeeded, open a second copy of Visual Studio 2005. If you don't already have an ASMX or WCF project, go ahead and create one using the Web Service Software Factory. Otherwise, open your existing Web Service Software Factory solution.
12. In that second copy of Visual Studio 2005, go to Tools, Guidance Package Manager, and click on Enable/Disable Packages. Uncheck the box next to Web Service Software Factory (Data Access) and check the box next to Web Service Software Factory DAL (Oracle). Click OK, then Click Close.
13. Right-click on your data access project, and you will now see the menu "Service Factory - Oracle DAL."
14. Make sure you have an Oracle connection defined in the host project. If you use the recipe to create it, you will need to manually edit the entry in the web.config file to look like this: <add name="YourNameHere" connectionString="Data Source=YourOracleHostStringHere;User ID=YourUserNameHere;Password=YourPasswordHere"
providerName="System.Data.OracleClient" />

Some things to keep in mind:
- the username you connect with must have the stored procedures in his schema.
- the recipes to create stored procedures have not been changed to PL/SQL. They are still the original T-SQL templates.
- while the "Get" operations work fairly well, the same enhancements have not been brought to the "Update" operation.
- schema definitions for ref cursors are not supported yet. If you need to work with cursors, select the cursor and map a business entity property to it. The code generated will include TODOs.
- use Get One for a single object retrieval, with stored proc having OUT scalars.
- use Get One Complex for a single object retrieval where one property is a List<> that contains children objects (stored proc contains one OUT ref cursor and OUT scalar parameters).
- use Get Many for retrieval of a List<> of objects, or a List<> of objects that contains sub-objects (also in a List<>). Stored proc would have 2 OUT ref cursors.

IMPORTANT NOTE: the Oracle data access guidance package was not yet tested with the December release of the WSSF. Hopefully, I'll get to it in the near future.

I hope this helps.

Feb 8, 2007 at 10:50 PM
Hi Phillipe,

Yes it helped greatly. I had figured out steps 1-13 but step 14 was my down fall.

When you say "not been brought to the Update operation" are you saying that we cannot update the database using this guidance package?

Thanks again,
Brent
Feb 8, 2007 at 11:56 PM
You can update the database, but the recipe is not as clean with IN/OUT parameters when doing UPDATE operations. The GET operations, on the other hand, handle IN/OUT parameters in a "squeaky clean" manner, unless someone runs into a bug I have not seen yet.
Mar 28, 2007 at 5:37 PM
Creating business entities from database appears to be working for oracle schemas not listing many objects, however VS hangs on larger oracle schemas. Are there size restrictions? If so, are there any tips for getting around those restrictions?
Thanks.
Mar 28, 2007 at 11:08 PM
AllenCd: How many objects are in the schemas taht hang VS?
Mar 29, 2007 at 1:34 PM
Hi Gaxphilic -
There are 400+ tables and 500+ views.
Thanks.


Gaxphilic wrote:
AllenCd: How many objects are in the schemas taht hang VS?

Mar 30, 2007 at 6:27 PM
Creating business entities from a larger schema is working, it just takes a while:
I let VS continue to run and the database objects were eventually loaded in the Specify Tables window after about an hour.
Thank you to every one who lent their assistance.
Mar 30, 2007 at 7:48 PM
Hi,

Yes, the larger the schema, the longer it takes to run. The object that performs the discovery is DbSchemaProvider (new in .NET 2.0). It tends to be sensitive to large number of objects.

Cheers,

Philippe


AllenCd wrote:
Creating business entities from a larger schema is working, it just takes a while:
I let VS continue to run and the database objects were eventually loaded in the Specify Tables window after about an hour.
Thank you to every one who lent their assistance.

Apr 4, 2007 at 3:30 PM
Edited Apr 4, 2007 at 3:31 PM
From an earlier post:
- the recipes to create stored procedures have not been changed to PL/SQL. They are still the original T-SQL templates.
Do you expect recipes using PL/SQL templates to be available in the near future? If not, what is a good source to learn about creating or customizing recipes?
Apr 5, 2007 at 4:25 AM
You may find some examples in the WCF Hands-on lab and the GAX/GAT forums out there.
Apr 5, 2007 at 1:17 PM
AllenCd,

I don't plan on working on this in the near future because we usually have our stored procedures already done by the time we get to the services.

Cheers,

Philippe


AllenCd wrote:
From an earlier post:
- the recipes to create stored procedures have not been changed to PL/SQL. They are still the original T-SQL templates.
Do you expect recipes using PL/SQL templates to be available in the near future? If not, what is a good source to learn about creating or customizing recipes?

Jun 5, 2007 at 7:01 PM
I am getting the following error when I select "Create data repository classes from business entities" from the DataAccess context menu:

"There was an error trying to obtain the list of stored procedures."

I do have stored procedures under the schema for user used to connect to the Oracle database.
Any pointers would be greatly appreciated.

Best regards,
Manoj
Jun 5, 2007 at 8:33 PM
Manoj,

Do you have a connection entry in the web.config file with the user ID equal to the username of the schema you are trying to connect to? If you use that user ID and password with SQL*Plus or the Oracle Explorer for Visual Studio, are you able to browse the stored procedures?


ManojSrivastava wrote:
I am getting the following error when I select "Create data repository classes from business entities" from the DataAccess context menu:

"There was an error trying to obtain the list of stored procedures."

I do have stored procedures under the schema for user used to connect to the Oracle database.
Any pointers would be greatly appreciated.

Best regards,
Manoj

Jun 5, 2007 at 10:01 PM
Manoj,

Have you checked you connection string to ensure that the provider name is not the SQL server provider? This attribute needs to be manually edited.

For example,
<connectionStrings>
<add name="PermitSvc" connectionString="Data Source=blah;User ID=blah;Password=blah;Unicode=True;" providerName="System.Data.OracleClient"/>

Brent
Jun 5, 2007 at 10:33 PM
I do have the connection string set up right and Visual Studio server explorer is able to show me the tables and stored procedures just fine.

--Manoj
Jun 5, 2007 at 10:38 PM
By some miracle it is working now. The only difference is that now closer to the server. Earlier I was accessing it via a VPN connection.

--Regards,


Manoj
Jun 18, 2007 at 7:59 AM
Thanks for the solid help Don and Phillipe. It took me half an hour with Phillipe's Recipe above to get the Oracle Schema Discovery working. Just one thing that I noticed that made me a bit nervous. All my Microsoft.Practices references in the Guidance Package was invalid. It was easy to just delete and add them again but I guess this was compiled with a previous version of the Microsoft.Practices assemblies. Any reason to be concerned about this, like I have an older version of something? Phillipe?
Jul 4, 2007 at 6:24 AM
Hi I followed all the steps given by phillipe, but it failing at registration for Data Access Guidence package.
It is througing error with "An exception occurred during the binding of reference or execution of Recipe Register: Action Register Failed to execute": I found one reason for this in forums as something with registry, but it didnt worked out for me. Plz help me
Jul 4, 2007 at 2:39 PM
Yes, the codebase posted here is based on the first release of the WSSF and thus is compiled against the EntLib version at that time (2.0.1.0). As later versions of EntLib are backwards-compatible with 2.0, I would not be worried.


aswanevelder wrote:
Thanks for the solid help Don and Phillipe. It took me half an hour with Phillipe's Recipe above to get the Oracle Schema Discovery working. Just one thing that I noticed that made me a bit nervous. All my Microsoft.Practices references in the Guidance Package was invalid. It was easy to just delete and add them again but I guess this was compiled with a previous version of the Microsoft.Practices assemblies. Any reason to be concerned about this, like I have an older version of something? Phillipe?

Jul 4, 2007 at 2:55 PM
This has happened to me in the past too, sometimes for silly typos in the templates. Do you have more information in the exception stack? I found that usualy the information in the InnerException stack can be quite helpful.

Another thing to consider is the evolution of the GAX/GAT toolset. When I worked on this, I was using the version at the time (1.0.51104). New versions have been released since, and I am not sure whether or not that would have an effect. Perhaps other developers in this community can comment on this.


venki_gun wrote:
Hi I followed all the steps given by phillipe, but it failing at registration for Data Access Guidence package.
It is througing error with "An exception occurred during the binding of reference or execution of Recipe Register: Action Register Failed to execute": I found one reason for this in forums as something with registry, but it didnt worked out for me. Plz help me

Jul 4, 2007 at 7:08 PM
Hi Philippe,
Thanks for ur quick response.
Here is the strack trace:

Microsoft.Practices.RecipeFramework.ActionExecutionException: An exception occurred during the binding of reference or execution of recipe Register. Error was: Action Register failed to execute:
Failed to process package. See the Guidance Package Development output window for more information about the error..
You can remove the reference to this recipe through the Guidance Package Manager. ---> System.Configuration.Install.InstallException: Failed to process package. See the Guidance Package Development output window for more information about the error.
at Microsoft.Practices.RecipeFramework.MetaGuidancePackage.Registration.PackageRegistationAction.ThrowFailure(DTE vs, String currentOperation, String output)
at Microsoft.Practices.RecipeFramework.MetaGuidancePackage.Registration.PackageRegistationAction.Execute()
at Microsoft.Practices.RecipeFramework.Recipe.Microsoft.Practices.RecipeFramework.Services.IActionExecutionService.Execute(String actionName, Dictionary`2 inputValues)
at Microsoft.Practices.RecipeFramework.Recipe.Microsoft.Practices.RecipeFramework.Services.IActionExecutionService.Execute(String actionName)
at Microsoft.Practices.RecipeFramework.Recipe.Microsoft.Practices.RecipeFramework.Services.IActionCoordinationService.Run(Dictionary`2 declaredActions, XmlElement coordinationData)
at Microsoft.Practices.RecipeFramework.Recipe.ExecuteActions(IDictionaryService readOnlyArguments, IDictionaryService arguments, ITypeResolutionService resolution)
--- End of inner exception stack trace ---
at Microsoft.Practices.RecipeFramework.Recipe.UndoExecutedActionsAndRethrow(Exception ex)
at Microsoft.Practices.RecipeFramework.Recipe.ExecuteActions(IDictionaryService readOnlyArguments, IDictionaryService arguments, ITypeResolutionService resolution)
at Microsoft.Practices.RecipeFramework.Recipe.Execute(Boolean allowSuspend)
at Microsoft.Practices.RecipeFramework.GuidancePackage.Execute(String recipe, IAssetReference reference, IDictionary arguments)
at Microsoft.Practices.RecipeFramework.GuidancePackage.Execute(IAssetReference reference)
at Microsoft.Practices.RecipeFramework.RecipeReference.OnExecute()
at Microsoft.Practices.RecipeFramework.AssetReference.Execute()
at Microsoft.Practices.RecipeFramework.VisualStudio.RecipeMenuCommand.OnExec()
at Microsoft.Practices.RecipeFramework.VisualStudio.AssetMenuCommand.Invoke()
Jul 4, 2007 at 11:03 PM
Hi,

I was compiling this an i get an error saying that it can't find the RecipeFramework.Configuration. i have added and removed the references and done this in two different computers.
What's wrong?

Thanks

Manuel Silva
Jul 4, 2007 at 11:48 PM
OK, that does not give us much to work with. What about getting the information from the Guidance Package Development output window for more information about the error? That might show something useful...


venki_gun wrote:
Hi Philippe,
Thanks for ur quick response.
Here is the strack trace:

Microsoft.Practices.RecipeFramework.ActionExecutionException: An exception occurred during the binding of reference or execution of recipe Register. Error was: Action Register failed to execute:
Failed to process package. See the Guidance Package Development output window for more information about the error..
You can remove the reference to this recipe through the Guidance Package Manager. ---> System.Configuration.Install.InstallException: Failed to process package. See the Guidance Package Development output window for more information about the error.
at Microsoft.Practices.RecipeFramework.MetaGuidancePackage.Registration.PackageRegistationAction.ThrowFailure(DTE vs, String currentOperation, String output)
at Microsoft.Practices.RecipeFramework.MetaGuidancePackage.Registration.PackageRegistationAction.Execute()
at Microsoft.Practices.RecipeFramework.Recipe.Microsoft.Practices.RecipeFramework.Services.IActionExecutionService.Execute(String actionName, Dictionary`2 inputValues)
at Microsoft.Practices.RecipeFramework.Recipe.Microsoft.Practices.RecipeFramework.Services.IActionExecutionService.Execute(String actionName)
at Microsoft.Practices.RecipeFramework.Recipe.Microsoft.Practices.RecipeFramework.Services.IActionCoordinationService.Run(Dictionary`2 declaredActions, XmlElement coordinationData)
at Microsoft.Practices.RecipeFramework.Recipe.ExecuteActions(IDictionaryService readOnlyArguments, IDictionaryService arguments, ITypeResolutionService resolution)
--- End of inner exception stack trace ---
at Microsoft.Practices.RecipeFramework.Recipe.UndoExecutedActionsAndRethrow(Exception ex)
at Microsoft.Practices.RecipeFramework.Recipe.ExecuteActions(IDictionaryService readOnlyArguments, IDictionaryService arguments, ITypeResolutionService resolution)
at Microsoft.Practices.RecipeFramework.Recipe.Execute(Boolean allowSuspend)
at Microsoft.Practices.RecipeFramework.GuidancePackage.Execute(String recipe, IAssetReference reference, IDictionary arguments)
at Microsoft.Practices.RecipeFramework.GuidancePackage.Execute(IAssetReference reference)
at Microsoft.Practices.RecipeFramework.RecipeReference.OnExecute()
at Microsoft.Practices.RecipeFramework.AssetReference.Execute()
at Microsoft.Practices.RecipeFramework.VisualStudio.RecipeMenuCommand.OnExec()
at Microsoft.Practices.RecipeFramework.VisualStudio.AssetMenuCommand.Invoke()


Jul 6, 2007 at 3:20 PM
Edited Jul 6, 2007 at 3:21 PM
Anyone? I really can't solve this issue as it doesn't make any sense. Any ideas?
Aug 11, 2007 at 1:45 AM
I have installed the latest releases of GAT and GAX. I am attempting to install the Oracle Schema Browser for the Data Access Guidance block. I downloaded and compiled the packages without issues, but am running into registration issues. Following is the output from the guidance automation development output window. Looks like it is not able to find a dll; the dll is definitely referenced in the package - I have checked it multiple times. Anyway, here is the output. If anyone has run into this before, please let me know how to fix this.

Output window created.

Information: 0 : Starting execution of recipe Register.

Information: 0 : No previously saved state found.

Information: 0 : C:\WINNT\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe /DesignMode /i /ShowCallStack /Configuration="C:\Data Access Guidance Package 2\Data Access Guidance Package\Data Access Guidance Package\bin\Debug\\Data Access Guidance Package.xml" "C:\Data Access Guidance Package 2\Data Access Guidance Package\Data Access Guidance Package Installer\bin\Debug\Microsoft.Practices.ServiceFactory.DataAccess.Installer.dll"

(*) Error: 0 : C:\WINNT\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe /DesignMode /i /ShowCallStack /Configuration="C:\Data Access Guidance Package 2\Data Access Guidance Package\Data Access Guidance Package\bin\Debug\\Data Access Guidance Package.xml" "C:\Data Access Guidance Package 2\Data Access Guidance Package\Data Access Guidance Package Installer\bin\Debug\Microsoft.Practices.ServiceFactory.DataAccess.Installer.dll"

Information: 0 : Microsoft (R) .NET Framework Installation utility Version 2.0.50727.832

Copyright (c) Microsoft Corporation. All rights reserved.





Running a transacted installation.



Beginning the Install phase of the installation.

See the contents of the log file for the C:\Data Access Guidance Package 2\Data Access Guidance Package\Data Access Guidance Package Installer\bin\Debug\Microsoft.Practices.ServiceFactory.DataAccess.Installer.dll assembly's progress.

The file is located at C:\Data Access Guidance Package 2\Data Access Guidance Package\Data Access Guidance Package Installer\bin\Debug\Microsoft.Practices.ServiceFactory.DataAccess.Installer.InstallLog.

Installing assembly 'C:\Data Access Guidance Package 2\Data Access Guidance Package\Data Access Guidance Package Installer\bin\Debug\Microsoft.Practices.ServiceFactory.DataAccess.Installer.dll'.

Affected parameters are:

configuration = C:\Data Access Guidance Package 2\Data Access Guidance Package\Data Access Guidance Package\bin\Debug\\Data Access Guidance Package.xml

designmode =

showcallstack =

i =

logfile = C:\Data Access Guidance Package 2\Data Access Guidance Package\Data Access Guidance Package Installer\bin\Debug\Microsoft.Practices.ServiceFactory.DataAccess.Installer.InstallLog

logtoconsole =

assemblypath = C:\Data Access Guidance Package 2\Data Access Guidance Package\Data Access Guidance Package Installer\bin\Debug\Microsoft.Practices.ServiceFactory.DataAccess.Installer.dll



An exception occurred during the Install phase.

System.TypeLoadException: Microsoft.Practices.RecipeFramework.VisualStudio.RecipeFrameworkInstaller, Microsoft.Practices.RecipeFramework.VisualStudio

at Microsoft.Practices.Common.Services.TypeResolutionService.GetType(String typeName, Boolean throwOnError, Boolean ignoreCase)

at Microsoft.Practices.Common.Services.TypeResolutionService.GetType(String typeName, Boolean throwOnError, Boolean ignoreCase)

at Microsoft.Practices.Common.Services.TypeResolutionService.GetType(String typeName, Boolean throwOnError)

at Microsoft.Practices.RecipeFramework.ManifestInstaller.InitPackage(String configuration, GuidancePackage& package, IHostInstaller& installer, XmlNode& packagesNode, Boolean installing)

at Microsoft.Practices.RecipeFramework.ManifestInstaller.InstallPackage(String configuration)

at Microsoft.Practices.RecipeFramework.ManifestInstaller.Install(IDictionary stateSaver)

at System.Configuration.Install.Installer.Install(IDictionary stateSaver)

at System.Configuration.Install.AssemblyInstaller.Install(IDictionary savedState)

at System.Configuration.Install.Installer.Install(IDictionary stateSaver)

at System.Configuration.Install.TransactedInstaller.Install(IDictionary savedState)

The inner exception System.IO.FileNotFoundException was thrown with the following error message: Couldn't find assembly Microsoft.Practices.RecipeFramework.VisualStudio..

at Microsoft.Practices.Common.Services.TypeResolutionService.GetAssembly(AssemblyName assemblyName, Boolean throwOnError)

at Microsoft.Practices.Common.Services.TypeResolutionService.GetType(String typeName, Boolean throwOnError, Boolean ignoreCase)



The Rollback phase of the installation is beginning.

See the contents of the log file for the C:\Data Access Guidance Package 2\Data Access Guidance Package\Data Access Guidance Package Installer\bin\Debug\Microsoft.Practices.ServiceFactory.DataAccess.Installer.dll assembly's progress.

The file is located at C:\Data Access Guidance Package 2\Data Access Guidance Package\Data Access Guidance Package Installer\bin\Debug\Microsoft.Practices.ServiceFactory.DataAccess.Installer.InstallLog.

Rolling back assembly 'C:\Data Access Guidance Package 2\Data Access Guidance Package\Data Access Guidance Package Installer\bin\Debug\Microsoft.Practices.ServiceFactory.DataAccess.Installer.dll'.

Affected parameters are:

configuration = C:\Data Access Guidance Package 2\Data Access Guidance Package\Data Access Guidance Package\bin\Debug\\Data Access Guidance Package.xml

designmode =

showcallstack =

i =

logfile = C:\Data Access Guidance Package 2\Data Access Guidance Package\Data Access Guidance Package Installer\bin\Debug\Microsoft.Practices.ServiceFactory.DataAccess.Installer.InstallLog

logtoconsole =

assemblypath = C:\Data Access Guidance Package 2\Data Access Guidance Package\Data Access Guidance Package Installer\bin\Debug\Microsoft.Practices.ServiceFactory.DataAccess.Installer.dll



The Rollback phase completed successfully.



The transacted install has completed.

The installation failed, and the rollback has been performed.





(*) Error: 0 : Microsoft (R) .NET Framework Installation utility Version 2.0.50727.832

Copyright (c) Microsoft Corporation. All rights reserved.





Running a transacted installation.



Beginning the Install phase of the installation.

See the contents of the log file for the C:\Data Access Guidance Package 2\Data Access Guidance Package\Data Access Guidance Package Installer\bin\Debug\Microsoft.Practices.ServiceFactory.DataAccess.Installer.dll assembly's progress.

The file is located at C:\Data Access Guidance Package 2\Data Access Guidance Package\Data Access Guidance Package Installer\bin\Debug\Microsoft.Practices.ServiceFactory.DataAccess.Installer.InstallLog.

Installing assembly 'C:\Data Access Guidance Package 2\Data Access Guidance Package\Data Access Guidance Package Installer\bin\Debug\Microsoft.Practices.ServiceFactory.DataAccess.Installer.dll'.

Affected parameters are:

configuration = C:\Data Access Guidance Package 2\Data Access Guidance Package\Data Access Guidance Package\bin\Debug\\Data Access Guidance Package.xml

designmode =

showcallstack =

i =

logfile = C:\Data Access Guidance Package 2\Data Access Guidance Package\Data Access Guidance Package Installer\bin\Debug\Microsoft.Practices.ServiceFactory.DataAccess.Installer.InstallLog

logtoconsole =

assemblypath = C:\Data Access Guidance Package 2\Data Access Guidance Package\Data Access Guidance Package Installer\bin\Debug\Microsoft.Practices.ServiceFactory.DataAccess.Installer.dll



An exception occurred during the Install phase.

System.TypeLoadException: Microsoft.Practices.RecipeFramework.VisualStudio.RecipeFrameworkInstaller, Microsoft.Practices.RecipeFramework.VisualStudio

at Microsoft.Practices.Common.Services.TypeResolutionService.GetType(String typeName, Boolean throwOnError, Boolean ignoreCase)

at Microsoft.Practices.Common.Services.TypeResolutionService.GetType(String typeName, Boolean throwOnError, Boolean ignoreCase)

at Microsoft.Practices.Common.Services.TypeResolutionService.GetType(String typeName, Boolean throwOnError)

at Microsoft.Practices.RecipeFramework.ManifestInstaller.InitPackage(String configuration, GuidancePackage& package, IHostInstaller& installer, XmlNode& packagesNode, Boolean installing)

at Microsoft.Practices.RecipeFramework.ManifestInstaller.InstallPackage(String configuration)

at Microsoft.Practices.RecipeFramework.ManifestInstaller.Install(IDictionary stateSaver)

at System.Configuration.Install.Installer.Install(IDictionary stateSaver)

at System.Configuration.Install.AssemblyInstaller.Install(IDictionary savedState)

at System.Configuration.Install.Installer.Install(IDictionary stateSaver)

at System.Configuration.Install.TransactedInstaller.Install(IDictionary savedState)

The inner exception System.IO.FileNotFoundException was thrown with the following error message: Couldn't find assembly Microsoft.Practices.RecipeFramework.VisualStudio..

at Microsoft.Practices.Common.Services.TypeResolutionService.GetAssembly(AssemblyName assemblyName, Boolean throwOnError)

at Microsoft.Practices.Common.Services.TypeResolutionService.GetType(String typeName, Boolean throwOnError, Boolean ignoreCase)

Sep 13, 2007 at 11:18 AM
I have similar problems, see Data Access Guidance not working with Oracle for status and possible solution. I don't think anyone has gotten this to work since the latest GAX release. But I would be very happy to be proven wrong...
Sep 20, 2007 at 10:45 AM
If you follow the 14 step process mentioned above, you must also change SpecificVersion=false for the failing references caused by a new version of GAX to get it to build. However, this is NOT enough for the Installer package: DataAccess Guidance Package Installer.csproj. Instead, I removed the old references to the two assemblies:

Microsoft.Practices.RecipeFramework
Microsoft.Practices.RecipeFramework.VisualStudio

and added them again. And presto, it finally worked!! Why this is necessary, I don't know, and it is not at all obvious.
Sep 20, 2007 at 1:24 PM
You beat me to it. Great job, thanks. I had just gotten done getting a Virtual PC image set up so I could get through this with a clean environment. I got to the point of the assembly references and was going to go through that process next. I experienced the same issue when installing the Smart Client Software Factory in Visual Studio 2008 Beta 2 with GAX and GAT 1.3.

What I really want to do is start porting this Oracle guidance package to the Repository Factory since that looks like it will fill a need until ADO.NET Entity Framework comes along.

Thanks again.


dstewartdk wrote:
If you follow the 14 step process mentioned above, you must also change SpecificVersion=false for the failing references caused by a new version of GAX to get it to build. However, this is NOT enough for the Installer package: DataAccess Guidance Package Installer.csproj. Instead, I removed the old references to the two assemblies:

Microsoft.Practices.RecipeFramework
Microsoft.Practices.RecipeFramework.VisualStudio

and added them again. And presto, it finally worked!! Why this is necessary, I don't know, and it is not at all obvious.

Sep 28, 2007 at 7:55 PM
Does any one have success in integrating ODP.Net with the Data Access Guidance Package?
Does any one have success with Ref cursors using the existing package?