Initial DDEX support : new pr #213

Merged
merged 48 commits into from Jun 22, 2014

Projects

None yet

9 participants

@kenjiuno
Contributor

A new pull request.
Initial DDEX support code is inherited from #67 started by wwindcloud.
Note: I have manually rebased previous code. So, it may contain some problems...

DDEX tips:

  • DDEX support will work on VS2010/VS2012/VS2013 Pro (VS2013 needs Visual Studio 2013 Update 2 or later) (Edited, 3 Jun)
  • Specify all of Host, Username, Password and Database properties in DDEX connection dialog.
  • Capture your ConnectionString for later use. For example,
PORT=5432;TIMEOUT=15;POOLING=True;MINPOOLSIZE=1;MAXPOOLSIZE=20;COMMANDTIMEOUT=20;COMPATIBLE=2.1.0.0;HOST=127.0.0.1;USER ID=npgsql_tests;PASSWORD=npgsql_tests;DATABASE=npgsql_tests

Built tips:

  • Open Npgsql2012.sln.
  • Configuration: Debug-net45, Release-net45 or such.
  • Built the entire solution.
  • Install the generated vsix. For example, NpgsqlDdexProvider\bin\Debug-net45\NpgsqlDdexProvider.vsix
  • gacutil /i Npgsql.dll

(Edit 22 Jun, 2014)
You'll need gacutil for .NET runtime 4.0.
It will be found from one of following folders:

  • C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools\gacutil.exe
  • C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools\gacutil.exe
  • C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools\gacutil.exe
windcloud and others added some commits Oct 4, 2013
@kenjiuno windcloud Initial DDEX support (Entity Model) 36ddd71
@kenjiuno windcloud DDEX: Remove NpgsqlDataObjectSelector, use default one, no longer nee…
…d customization

DDEX: Make copy/paste drag/drop work
Npgsql: Rework NpgsqlConnectionStringBuilder to be more consistent
Npgsql: Fix bug in NpgsqlMetaData.xml, wrong CompositeIdentifierSeparatorPattern
Npgsql: Fix GetSchema for tables to return TABLE only
aad9d04
@kenjiuno windcloud DDEX: TableForeignKeyColumn ReferencedColumn not support yet, have to…
… change GetSchema()

Npgsql: Revert NpgsqlConnectionStringBuilder.resx to using 2.0 assembly
Npgsql: Fix typo Keywords.Host to Keywords.UserName
ea1f9f2
@kenjiuno windcloud Make NpgsqlConnectionBuilder to throw the inner exception instead of …
…TargetInvokeException when parsing invalid value

Fix MinPoolSize/MaxPoolSize check
Make NpgsqlConnectionBuilder keyword case insensitive
Fix GetSchema SQL on Contraints and ConstraintColumns when using restriction
8e9f0c2
@kenjiuno kenjiuno Start working on VS2013 Pro. cc3853a
@kenjiuno kenjiuno Fix null reference exception. 83908f6
@kenjiuno kenjiuno Fix GetSchemata so that simple users can query schema list. 5d4e99f
@kenjiuno kenjiuno Accepts keyword INTEGRATEDSECURITY. a0af66d
@kenjiuno kenjiuno Implement TryGetValue so that DDEX works. e70c665
@kenjiuno kenjiuno Added InstallationTargets for various environments. 033d61c
samy Correct GetConstraints and GetConstraintColumns : use of "as" keyword…
… to be compatible with postgresql 8.1
dc7bf20
@samy2
samy2 commented Apr 23, 2014

Hi @kenjiuno,

I tested this pull request over the ngsql master branch. This works great !

My configuration :
Visual Studio 2003 Update 2 RC
Visual Studio SDK
Postgresql 8.1.10 under Linux

To make it work with my version of postgresql, i had to patch GetConstraints and GetConstraintColumns in npgsqlSchema.cs (use of "as" SQL keyword).
(see my pull request : kenjiuno#1).

Then, I installed NpgsqlDdexProvider.vsix and put npqsql.dll, Npgsql.EntityFramework.dll and Npgsql.EntityFrameworkLegacy.dll into the GAC.
After that, all worked perfectly : I can create datasources, view data, and I was also able to use the Entity Framework 6.1.0 Tools for Visual Studio to reverse engineer my database.

I hope this pull request will soon be integrated into the official npsql master branch.

@kenjiuno kenjiuno Merge pull request #1 from samy2/wwindcloud-patch-on-master
Correct GetConstraints and GetConstraintColumns : use of "as" keyword to...
1d13273
@franciscojunior
Member

Excellent work, @kenjiuno !
I'll have a look at this.

@samy2 , thanks for giving it a try and let us know it worked ok. I'll work to get it integrated into master.

@franciscojunior
Member

Hi, @kenjiuno !

Do you think it would be possible to get it working with visual studio 2010?

This is the only Pro version I have. Extensions don't work with express editions :(

I'll check the 2013 evaluation option.

Thanks in advance.

@franciscojunior franciscojunior added this to the 2.2 milestone Apr 23, 2014
@kenjiuno
Contributor

Hi @franciscojunior

I think it will work on earlier versions like VS2010.
I'll find a way to get it work.

@franciscojunior
Member

Hi, @kenjiuno !

Thanks for having a look at this!

Do you think it would be possible to get it working with visual studio 2010?

Actually, I meant get it compilable in vs.net 2010 :)

@franciscojunior
Member

Hi, @kenjiuno !

I think this pr is almost ready to be merged. We even have a test done by @samy2 ! :)

I have an observation.

In your changes, I noticed that in the 2002 solution file, there is a signature change:

+# Visual Studio 2013
 +VisualStudioVersion = 12.0.30324.0
 +MinimumVisualStudioVersion = 10.0.40219.1

I think visual studio 2013 changed the vs 2012 project signature.

Can you confirm that? If so, would it be possible to change the vs.net 2013 solution file instead of the 2012?

Thanks in advance.

@kenjiuno
Contributor

Hi.

Can you confirm that? If so, would it be possible to change the vs.net 2013 solution file instead of the 2012?

Yes, you are right.
I have used VS2013 pro eval on vs 2012 project. It has changed the signature, as you mentioned.

I will fix problems on VS2012/VS2013 versions, when my MSDN license is activated that I have purchased last week. It will take a week...

also working on VS2010 version...

@kenjiuno kenjiuno Added NpgsqlDdexProvider to Vs2010/Vs2012/Vs2013.
Added License.rtf for NpgsqlDdexProvider vsix installer.
0ed183b
@kenjiuno
Contributor
kenjiuno commented May 3, 2014

Hi.

I have updated Vs2010/Vs2012/Vs2013 solutions for NpgsqlDdexProvider.

@kenjiuno
Contributor
kenjiuno commented May 3, 2014

NpgsqlDdexProvider build tips

VS2010 users

You'll need VS2010 Professional or greater.

SP0 users:

SP1 users:

If you need newer NpgsqlDdexProvider2010.pkgdef, create your own manually.
pkgdef is a kind of registry file for our DDEX registration.
Note: It is needed only if you change contents of NpgsqlDataProviderRegistration class.

Command example:

H:\Dev\Npgsql\NpgsqlDdexProvider>"H:\Program Files (x86)\Microsoft Visual Studio 2010 SDK SP1\VisualStudioIntegration\Tools\Bin\CreatePkgDef.exe" /out=NpgsqlDdexProvider2010.pkgdef /codebase bin\Release-net40\NpgsqlDdexProvider.dll

Output:

Visual Studio (R) PkgDef Creation Utility.
Copyright (c) Microsoft Corporation. All rights reserved.

CreatePkgDef : warning : The Assembly specified at 'bin\Release-net40\NpgsqlDdexProvider.dll' cannot be loaded because an alternate copy with the same identity
exists in the Assembly probing path at 'H:\Dev\Npgsql\NpgsqlDdexProvider\bin\Release-net40\NpgsqlDdexProvider.dll'. The Assembly at 'H:\Dev\Npgsql\NpgsqlDdexPro
vider\bin\Release-net40\NpgsqlDdexProvider.dll' will be loaded instead.
Assembly: NpgsqlDdexProvider 1.0.0.0
Output file: NpgsqlDdexProvider2010.pkgdef

インストールされている製品:   NpgsqlDdexProviderPackage、Version 1.0
パッケージ:          NpgsqlDdexProviderPackage {958b9481-2712-4670-9a62-8fe65e5beea7}
サービス:          PostgreSQL Provider Object Factory

SUCCEEDED:        NpgsqlDdexProvider

Check: How to create a pkgdef file for your Visual Studio Package http://blogs.msdn.com/b/dsvst/archive/2010/03/08/how-to-create-a-pkgdef-file-for-your-visual-studio-package.aspx

VS2012 users

You'll need VS2012 Professional or greater.

VS2013 users

You'll need VS2013 Professional or greater.

@franciscojunior
Member

That's excellent, @kenjiuno !

I'll copy your instructions to a new wiki page NpgsqlDdexProvider!

I'll make some tests with visual studio 2010 and will give you my feedback!

Thank you very much for your support and hard work. You rock!

@kenjiuno
Contributor
kenjiuno commented May 5, 2014

@franciscojunior Thanks. It'll be good information source!

@franciscojunior
Member

@franciscojunior Thanks. It'll be good information source!

You are welcome!

And thank you very much for all your help and support.

I could get it to work in my visual studio 2010. But I only did some simple tests.

I'll try some other tests and will let you know if I find any problems.

I think we are ready to merge it! :)

@franciscojunior
Member

@kenjiuno , did you check the change proposed by @samy2 ?

@samy2
samy2 commented May 5, 2014

Hi,

did you check the change proposed by @samy2 ?

@kenjiuno has already integrated my changes into his branch and into this pull request.
Thanks for your work!

@franciscojunior
Member

@kenjiuno has already integrated my changes into his branch and into this pull request.
Thanks for your work!

That's excellent! I didn't notice it was already integrated.

@franciscojunior
Member

Hmmmm, build server is missing vssdk. I'll install it and will run the build again. I'll update here when I have done that.

@franciscojunior
Member

It seems that installing the required sdk is more complicated than I thought. They need visual studio installed too which we don't have in our build server. While searching the web for a solution, I found this post which talks about a possible way to do that: http://blogs.msdn.com/b/aaronmar/archive/2011/05/10/visual-studio-extensions-and-build-servers.aspx

In this post, the author talks about copying the files from vs sdk to the project so those missing files can be referenced from there.

I'm checking how we could make this work.

If you have any idea about how we can do that, please let me know.

@franciscojunior
Member

This is the error we are getting:

error MSB4019: The imported project "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\VSSDK\Microsoft.VsSDK.targets" was not found. Confirm that the path in the declaration is correct, and that the file exists on disk.

@franciscojunior
Member

Thanks, @kenjiuno !

I'll have a look at them.

I also asked @roji , who set up our teamcity server, to have a look at it. He said he will be able to check it on this weekend.

@franciscojunior
Member

Hi @kenjiuno !
Sorry for taking so long to reply.

Only the files from the msbuild folder won't be enough. Npgsql extension references a lot of interop COM assemblies from vs.net which aren't installed in the build server.

I copied the tasks files to the server and this was the result output when trying a new build:

ResolveAssemblyReferences] ResolveAssemblyReference
[08:25:50][ResolveAssemblyReference] Primary reference "Microsoft.VisualStudio.Data.Core, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL".
[08:25:50][ResolveAssemblyReference] C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1605, 5): warning MSB3245: Could not resolve this reference. Could not locate the assembly "Microsoft.VisualStudio.Data.Core, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors.
[08:25:50][ResolveAssemblyReference] For SearchPath "{TargetFrameworkDirectory}".
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Microsoft.VisualStudio.Data.Core.winmd", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Microsoft.VisualStudio.Data.Core.dll", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Microsoft.VisualStudio.Data.Core.exe", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\Microsoft.VisualStudio.Data.Core.winmd", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\Microsoft.VisualStudio.Data.Core.dll", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\Microsoft.VisualStudio.Data.Core.exe", but it didn't exist.
[08:25:50][ResolveAssemblyReference] For SearchPath "{Registry:Software\Microsoft\.NETFramework,v4.5,AssemblyFoldersEx}".
[08:25:50][ResolveAssemblyReference] Considered AssemblyFoldersEx locations.
[08:25:50][ResolveAssemblyReference] For SearchPath "{AssemblyFolders}".
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\v3.5\Microsoft.VisualStudio.Data.Core.winmd", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\v3.5\Microsoft.VisualStudio.Data.Core.dll", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\v3.5\Microsoft.VisualStudio.Data.Core.exe", but it didn't exist.
[08:25:50][ResolveAssemblyReference] For SearchPath "{GAC}".
[08:25:50][ResolveAssemblyReference] Considered "Microsoft.VisualStudio.Data.Core, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL", which was not found in the GAC.
[08:25:50][ResolveAssemblyReference] For SearchPath "{RawFileName}".
[08:25:50][ResolveAssemblyReference] Considered treating "Microsoft.VisualStudio.Data.Core, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" as a file name, but it didn't exist.
[08:25:50][ResolveAssemblyReference] For SearchPath "bin\Release-net45\".
[08:25:50][ResolveAssemblyReference] Considered "bin\Release-net45\Microsoft.VisualStudio.Data.Core.winmd", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "bin\Release-net45\Microsoft.VisualStudio.Data.Core.dll", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "bin\Release-net45\Microsoft.VisualStudio.Data.Core.exe", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Primary reference "Microsoft.VisualStudio.Data.Framework, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL".
[08:25:50][ResolveAssemblyReference] C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1605, 5): warning MSB3245: Could not resolve this reference. Could not locate the assembly "Microsoft.VisualStudio.Data.Framework, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors.
[08:25:50][ResolveAssemblyReference] For SearchPath "{TargetFrameworkDirectory}".
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Microsoft.VisualStudio.Data.Framework.winmd", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Microsoft.VisualStudio.Data.Framework.dll", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Microsoft.VisualStudio.Data.Framework.exe", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\Microsoft.VisualStudio.Data.Framework.winmd", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\Microsoft.VisualStudio.Data.Framework.dll", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\Microsoft.VisualStudio.Data.Framework.exe", but it didn't exist.
[08:25:50][ResolveAssemblyReference] For SearchPath "{Registry:Software\Microsoft\.NETFramework,v4.5,AssemblyFoldersEx}".
[08:25:50][ResolveAssemblyReference] Considered AssemblyFoldersEx locations.
[08:25:50][ResolveAssemblyReference] For SearchPath "{AssemblyFolders}".
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\v3.5\Microsoft.VisualStudio.Data.Framework.winmd", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\v3.5\Microsoft.VisualStudio.Data.Framework.dll", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\v3.5\Microsoft.VisualStudio.Data.Framework.exe", but it didn't exist.
[08:25:50][ResolveAssemblyReference] For SearchPath "{GAC}".
[08:25:50][ResolveAssemblyReference] Considered "Microsoft.VisualStudio.Data.Framework, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL", which was not found in the GAC.
[08:25:50][ResolveAssemblyReference] For SearchPath "{RawFileName}".
[08:25:50][ResolveAssemblyReference] Considered treating "Microsoft.VisualStudio.Data.Framework, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" as a file name, but it didn't exist.
[08:25:50][ResolveAssemblyReference] For SearchPath "bin\Release-net45\".
[08:25:50][ResolveAssemblyReference] Considered "bin\Release-net45\Microsoft.VisualStudio.Data.Framework.winmd", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "bin\Release-net45\Microsoft.VisualStudio.Data.Framework.dll", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "bin\Release-net45\Microsoft.VisualStudio.Data.Framework.exe", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Primary reference "Microsoft.VisualStudio.Data.Services, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL".
[08:25:50][ResolveAssemblyReference] C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1605, 5): warning MSB3245: Could not resolve this reference. Could not locate the assembly "Microsoft.VisualStudio.Data.Services, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors.
[08:25:50][ResolveAssemblyReference] For SearchPath "{TargetFrameworkDirectory}".
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Microsoft.VisualStudio.Data.Services.winmd", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Microsoft.VisualStudio.Data.Services.dll", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Microsoft.VisualStudio.Data.Services.exe", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\Microsoft.VisualStudio.Data.Services.winmd", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\Microsoft.VisualStudio.Data.Services.dll", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\Microsoft.VisualStudio.Data.Services.exe", but it didn't exist.
[08:25:50][ResolveAssemblyReference] For SearchPath "{Registry:Software\Microsoft\.NETFramework,v4.5,AssemblyFoldersEx}".
[08:25:50][ResolveAssemblyReference] Considered AssemblyFoldersEx locations.
[08:25:50][ResolveAssemblyReference] For SearchPath "{AssemblyFolders}".
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\v3.5\Microsoft.VisualStudio.Data.Services.winmd", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\v3.5\Microsoft.VisualStudio.Data.Services.dll", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\v3.5\Microsoft.VisualStudio.Data.Services.exe", but it didn't exist.
[08:25:50][ResolveAssemblyReference] For SearchPath "{GAC}".
[08:25:50][ResolveAssemblyReference] Considered "Microsoft.VisualStudio.Data.Services, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL", which was not found in the GAC.
[08:25:50][ResolveAssemblyReference] For SearchPath "{RawFileName}".
[08:25:50][ResolveAssemblyReference] Considered treating "Microsoft.VisualStudio.Data.Services, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" as a file name, but it didn't exist.
[08:25:50][ResolveAssemblyReference] For SearchPath "bin\Release-net45\".
[08:25:50][ResolveAssemblyReference] Considered "bin\Release-net45\Microsoft.VisualStudio.Data.Services.winmd", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "bin\Release-net45\Microsoft.VisualStudio.Data.Services.dll", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "bin\Release-net45\Microsoft.VisualStudio.Data.Services.exe", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Primary reference "Microsoft.VisualStudio.OLE.Interop, Version=7.1.40304.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a".
[08:25:50][ResolveAssemblyReference] C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1605, 5): warning MSB3245: Could not resolve this reference. Could not locate the assembly "Microsoft.VisualStudio.OLE.Interop, Version=7.1.40304.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors.
[08:25:50][ResolveAssemblyReference] For SearchPath "{TargetFrameworkDirectory}".
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Microsoft.VisualStudio.OLE.Interop.winmd", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Microsoft.VisualStudio.OLE.Interop.dll", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Microsoft.VisualStudio.OLE.Interop.exe", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\Microsoft.VisualStudio.OLE.Interop.winmd", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\Microsoft.VisualStudio.OLE.Interop.dll", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\Microsoft.VisualStudio.OLE.Interop.exe", but it didn't exist.
[08:25:50][ResolveAssemblyReference] For SearchPath "{Registry:Software\Microsoft\.NETFramework,v4.5,AssemblyFoldersEx}".
[08:25:50][ResolveAssemblyReference] Considered AssemblyFoldersEx locations.
[08:25:50][ResolveAssemblyReference] For SearchPath "{AssemblyFolders}".
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\v3.5\Microsoft.VisualStudio.OLE.Interop.winmd", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\v3.5\Microsoft.VisualStudio.OLE.Interop.dll", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\v3.5\Microsoft.VisualStudio.OLE.Interop.exe", but it didn't exist.
[08:25:50][ResolveAssemblyReference] For SearchPath "{GAC}".
[08:25:50][ResolveAssemblyReference] Considered "Microsoft.VisualStudio.OLE.Interop, Version=7.1.40304.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", which was not found in the GAC.
[08:25:50][ResolveAssemblyReference] For SearchPath "{RawFileName}".
[08:25:50][ResolveAssemblyReference] Considered treating "Microsoft.VisualStudio.OLE.Interop, Version=7.1.40304.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" as a file name, but it didn't exist.
[08:25:50][ResolveAssemblyReference] For SearchPath "bin\Release-net45\".
[08:25:50][ResolveAssemblyReference] Considered "bin\Release-net45\Microsoft.VisualStudio.OLE.Interop.winmd", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "bin\Release-net45\Microsoft.VisualStudio.OLE.Interop.dll", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "bin\Release-net45\Microsoft.VisualStudio.OLE.Interop.exe", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Primary reference "Microsoft.VisualStudio.Shell.Interop".
[08:25:50][ResolveAssemblyReference] C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1605, 5): warning MSB3245: Could not resolve this reference. Could not locate the assembly "Microsoft.VisualStudio.Shell.Interop". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors.
[08:25:50][ResolveAssemblyReference] For SearchPath "{TargetFrameworkDirectory}".
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Microsoft.VisualStudio.Shell.Interop.winmd", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Microsoft.VisualStudio.Shell.Interop.dll", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Microsoft.VisualStudio.Shell.Interop.exe", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\Microsoft.VisualStudio.Shell.Interop.winmd", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\Microsoft.VisualStudio.Shell.Interop.dll", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\Microsoft.VisualStudio.Shell.Interop.exe", but it didn't exist.
[08:25:50][ResolveAssemblyReference] For SearchPath "{Registry:Software\Microsoft\.NETFramework,v4.5,AssemblyFoldersEx}".
[08:25:50][ResolveAssemblyReference] Considered AssemblyFoldersEx locations.
[08:25:50][ResolveAssemblyReference] For SearchPath "{AssemblyFolders}".
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\v3.5\Microsoft.VisualStudio.Shell.Interop.winmd", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\v3.5\Microsoft.VisualStudio.Shell.Interop.dll", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\v3.5\Microsoft.VisualStudio.Shell.Interop.exe", but it didn't exist.
[08:25:50][ResolveAssemblyReference] For SearchPath "{GAC}".
[08:25:50][ResolveAssemblyReference] Considered "Microsoft.VisualStudio.Shell.Interop", which was not found in the GAC.
[08:25:50][ResolveAssemblyReference] For SearchPath "{RawFileName}".
[08:25:50][ResolveAssemblyReference] Considered treating "Microsoft.VisualStudio.Shell.Interop" as a file name, but it didn't exist.
[08:25:50][ResolveAssemblyReference] For SearchPath "bin\Release-net45\".
[08:25:50][ResolveAssemblyReference] Considered "bin\Release-net45\Microsoft.VisualStudio.Shell.Interop.winmd", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "bin\Release-net45\Microsoft.VisualStudio.Shell.Interop.dll", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "bin\Release-net45\Microsoft.VisualStudio.Shell.Interop.exe", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Primary reference "Microsoft.VisualStudio.Shell.Interop.8.0".
[08:25:50][ResolveAssemblyReference] C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1605, 5): warning MSB3245: Could not resolve this reference. Could not locate the assembly "Microsoft.VisualStudio.Shell.Interop.8.0". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors.
[08:25:50][ResolveAssemblyReference] For SearchPath "{TargetFrameworkDirectory}".
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Microsoft.VisualStudio.Shell.Interop.8.0.winmd", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Microsoft.VisualStudio.Shell.Interop.8.0.dll", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Microsoft.VisualStudio.Shell.Interop.8.0.exe", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\Microsoft.VisualStudio.Shell.Interop.8.0.winmd", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\Microsoft.VisualStudio.Shell.Interop.8.0.dll", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\Microsoft.VisualStudio.Shell.Interop.8.0.exe", but it didn't exist.
[08:25:50][ResolveAssemblyReference] For SearchPath "{Registry:Software\Microsoft\.NETFramework,v4.5,AssemblyFoldersEx}".
[08:25:50][ResolveAssemblyReference] Considered AssemblyFoldersEx locations.
[08:25:50][ResolveAssemblyReference] For SearchPath "{AssemblyFolders}".
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\v3.5\Microsoft.VisualStudio.Shell.Interop.8.0.winmd", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\v3.5\Microsoft.VisualStudio.Shell.Interop.8.0.dll", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\v3.5\Microsoft.VisualStudio.Shell.Interop.8.0.exe", but it didn't exist.
[08:25:50][ResolveAssemblyReference] For SearchPath "{GAC}".
[08:25:50][ResolveAssemblyReference] Considered "Microsoft.VisualStudio.Shell.Interop.8.0", which was not found in the GAC.
[08:25:50][ResolveAssemblyReference] For SearchPath "{RawFileName}".
[08:25:50][ResolveAssemblyReference] Considered treating "Microsoft.VisualStudio.Shell.Interop.8.0" as a file name, but it didn't exist.
[08:25:50][ResolveAssemblyReference] For SearchPath "bin\Release-net45\".
[08:25:50][ResolveAssemblyReference] Considered "bin\Release-net45\Microsoft.VisualStudio.Shell.Interop.8.0.winmd", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "bin\Release-net45\Microsoft.VisualStudio.Shell.Interop.8.0.dll", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "bin\Release-net45\Microsoft.VisualStudio.Shell.Interop.8.0.exe", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Primary reference "Microsoft.VisualStudio.Shell.Interop.9.0".
[08:25:50][ResolveAssemblyReference] C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1605, 5): warning MSB3245: Could not resolve this reference. Could not locate the assembly "Microsoft.VisualStudio.Shell.Interop.9.0". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors.
[08:25:50][ResolveAssemblyReference] For SearchPath "{TargetFrameworkDirectory}".
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Microsoft.VisualStudio.Shell.Interop.9.0.winmd", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Microsoft.VisualStudio.Shell.Interop.9.0.dll", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Microsoft.VisualStudio.Shell.Interop.9.0.exe", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\Microsoft.VisualStudio.Shell.Interop.9.0.winmd", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\Microsoft.VisualStudio.Shell.Interop.9.0.dll", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\Microsoft.VisualStudio.Shell.Interop.9.0.exe", but it didn't exist.
[08:25:50][ResolveAssemblyReference] For SearchPath "{Registry:Software\Microsoft\.NETFramework,v4.5,AssemblyFoldersEx}".
[08:25:50][ResolveAssemblyReference] Considered AssemblyFoldersEx locations.
[08:25:50][ResolveAssemblyReference] For SearchPath "{AssemblyFolders}".
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\v3.5\Microsoft.VisualStudio.Shell.Interop.9.0.winmd", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\v3.5\Microsoft.VisualStudio.Shell.Interop.9.0.dll", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\v3.5\Microsoft.VisualStudio.Shell.Interop.9.0.exe", but it didn't exist.
[08:25:50][ResolveAssemblyReference] For SearchPath "{GAC}".
[08:25:50][ResolveAssemblyReference] Considered "Microsoft.VisualStudio.Shell.Interop.9.0", which was not found in the GAC.
[08:25:50][ResolveAssemblyReference] For SearchPath "{RawFileName}".
[08:25:50][ResolveAssemblyReference] Considered treating "Microsoft.VisualStudio.Shell.Interop.9.0" as a file name, but it didn't exist.
[08:25:50][ResolveAssemblyReference] For SearchPath "bin\Release-net45\".
[08:25:50][ResolveAssemblyReference] Considered "bin\Release-net45\Microsoft.VisualStudio.Shell.Interop.9.0.winmd", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "bin\Release-net45\Microsoft.VisualStudio.Shell.Interop.9.0.dll", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "bin\Release-net45\Microsoft.VisualStudio.Shell.Interop.9.0.exe", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Primary reference "Microsoft.VisualStudio.Shell.Interop.10.0".
[08:25:50][ResolveAssemblyReference] C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1605, 5): warning MSB3245: Could not resolve this reference. Could not locate the assembly "Microsoft.VisualStudio.Shell.Interop.10.0". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors.
[08:25:50][ResolveAssemblyReference] For SearchPath "{TargetFrameworkDirectory}".
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Microsoft.VisualStudio.Shell.Interop.10.0.winmd", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Microsoft.VisualStudio.Shell.Interop.10.0.dll", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Microsoft.VisualStudio.Shell.Interop.10.0.exe", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\Microsoft.VisualStudio.Shell.Interop.10.0.winmd", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\Microsoft.VisualStudio.Shell.Interop.10.0.dll", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\Microsoft.VisualStudio.Shell.Interop.10.0.exe", but it didn't exist.
[08:25:50][ResolveAssemblyReference] For SearchPath "{Registry:Software\Microsoft\.NETFramework,v4.5,AssemblyFoldersEx}".
[08:25:50][ResolveAssemblyReference] Considered AssemblyFoldersEx locations.
[08:25:50][ResolveAssemblyReference] For SearchPath "{AssemblyFolders}".
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\v3.5\Microsoft.VisualStudio.Shell.Interop.10.0.winmd", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\v3.5\Microsoft.VisualStudio.Shell.Interop.10.0.dll", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\v3.5\Microsoft.VisualStudio.Shell.Interop.10.0.exe", but it didn't exist.
[08:25:50][ResolveAssemblyReference] For SearchPath "{GAC}".
[08:25:50][ResolveAssemblyReference] Considered "Microsoft.VisualStudio.Shell.Interop.10.0", which was not found in the GAC.
[08:25:50][ResolveAssemblyReference] For SearchPath "{RawFileName}".
[08:25:50][ResolveAssemblyReference] Considered treating "Microsoft.VisualStudio.Shell.Interop.10.0" as a file name, but it didn't exist.
[08:25:50][ResolveAssemblyReference] For SearchPath "bin\Release-net45\".
[08:25:50][ResolveAssemblyReference] Considered "bin\Release-net45\Microsoft.VisualStudio.Shell.Interop.10.0.winmd", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "bin\Release-net45\Microsoft.VisualStudio.Shell.Interop.10.0.dll", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "bin\Release-net45\Microsoft.VisualStudio.Shell.Interop.10.0.exe", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Primary reference "Microsoft.VisualStudio.Shell.Interop.11.0".
[08:25:50][ResolveAssemblyReference] C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1605, 5): warning MSB3245: Could not resolve this reference. Could not locate the assembly "Microsoft.VisualStudio.Shell.Interop.11.0". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors.
[08:25:50][ResolveAssemblyReference] For SearchPath "{TargetFrameworkDirectory}".
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Microsoft.VisualStudio.Shell.Interop.11.0.winmd", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Microsoft.VisualStudio.Shell.Interop.11.0.dll", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Microsoft.VisualStudio.Shell.Interop.11.0.exe", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\Microsoft.VisualStudio.Shell.Interop.11.0.winmd", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\Microsoft.VisualStudio.Shell.Interop.11.0.dll", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\Microsoft.VisualStudio.Shell.Interop.11.0.exe", but it didn't exist.
[08:25:50][ResolveAssemblyReference] For SearchPath "{Registry:Software\Microsoft\.NETFramework,v4.5,AssemblyFoldersEx}".
[08:25:50][ResolveAssemblyReference] Considered AssemblyFoldersEx locations.
[08:25:50][ResolveAssemblyReference] For SearchPath "{AssemblyFolders}".
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\v3.5\Microsoft.VisualStudio.Shell.Interop.11.0.winmd", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\v3.5\Microsoft.VisualStudio.Shell.Interop.11.0.dll", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\v3.5\Microsoft.VisualStudio.Shell.Interop.11.0.exe", but it didn't exist.
[08:25:50][ResolveAssemblyReference] For SearchPath "{GAC}".
[08:25:50][ResolveAssemblyReference] Considered "Microsoft.VisualStudio.Shell.Interop.11.0", which was not found in the GAC.
[08:25:50][ResolveAssemblyReference] For SearchPath "{RawFileName}".
[08:25:50][ResolveAssemblyReference] Considered treating "Microsoft.VisualStudio.Shell.Interop.11.0" as a file name, but it didn't exist.
[08:25:50][ResolveAssemblyReference] For SearchPath "bin\Release-net45\".
[08:25:50][ResolveAssemblyReference] Considered "bin\Release-net45\Microsoft.VisualStudio.Shell.Interop.11.0.winmd", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "bin\Release-net45\Microsoft.VisualStudio.Shell.Interop.11.0.dll", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "bin\Release-net45\Microsoft.VisualStudio.Shell.Interop.11.0.exe", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Primary reference "Microsoft.VisualStudio.Shell.11.0".
[08:25:50][ResolveAssemblyReference] C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1605, 5): warning MSB3245: Could not resolve this reference. Could not locate the assembly "Microsoft.VisualStudio.Shell.11.0". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors.
[08:25:50][ResolveAssemblyReference] For SearchPath "{TargetFrameworkDirectory}".
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Microsoft.VisualStudio.Shell.11.0.winmd", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Microsoft.VisualStudio.Shell.11.0.dll", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Microsoft.VisualStudio.Shell.11.0.exe", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\Microsoft.VisualStudio.Shell.11.0.winmd", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\Microsoft.VisualStudio.Shell.11.0.dll", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\Microsoft.VisualStudio.Shell.11.0.exe", but it didn't exist.
[08:25:50][ResolveAssemblyReference] For SearchPath "{Registry:Software\Microsoft\.NETFramework,v4.5,AssemblyFoldersEx}".
[08:25:50][ResolveAssemblyReference] Considered AssemblyFoldersEx locations.
[08:25:50][ResolveAssemblyReference] For SearchPath "{AssemblyFolders}".
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\v3.5\Microsoft.VisualStudio.Shell.11.0.winmd", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\v3.5\Microsoft.VisualStudio.Shell.11.0.dll", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\v3.5\Microsoft.VisualStudio.Shell.11.0.exe", but it didn't exist.
[08:25:50][ResolveAssemblyReference] For SearchPath "{GAC}".
[08:25:50][ResolveAssemblyReference] Considered "Microsoft.VisualStudio.Shell.11.0", which was not found in the GAC.
[08:25:50][ResolveAssemblyReference] For SearchPath "{RawFileName}".
[08:25:50][ResolveAssemblyReference] Considered treating "Microsoft.VisualStudio.Shell.11.0" as a file name, but it didn't exist.
[08:25:50][ResolveAssemblyReference] For SearchPath "bin\Release-net45\".
[08:25:50][ResolveAssemblyReference] Considered "bin\Release-net45\Microsoft.VisualStudio.Shell.11.0.winmd", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "bin\Release-net45\Microsoft.VisualStudio.Shell.11.0.dll", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "bin\Release-net45\Microsoft.VisualStudio.Shell.11.0.exe", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Primary reference "Microsoft.VisualStudio.Shell.Immutable.10.0".
[08:25:50][ResolveAssemblyReference] C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1605, 5): warning MSB3245: Could not resolve this reference. Could not locate the assembly "Microsoft.VisualStudio.Shell.Immutable.10.0". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors.
[08:25:50][ResolveAssemblyReference] For SearchPath "{TargetFrameworkDirectory}".
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Microsoft.VisualStudio.Shell.Immutable.10.0.winmd", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Microsoft.VisualStudio.Shell.Immutable.10.0.dll", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Microsoft.VisualStudio.Shell.Immutable.10.0.exe", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\Microsoft.VisualStudio.Shell.Immutable.10.0.winmd", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\Microsoft.VisualStudio.Shell.Immutable.10.0.dll", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\Microsoft.VisualStudio.Shell.Immutable.10.0.exe", but it didn't exist.
[08:25:50][ResolveAssemblyReference] For SearchPath "{Registry:Software\Microsoft\.NETFramework,v4.5,AssemblyFoldersEx}".
[08:25:50][ResolveAssemblyReference] Considered AssemblyFoldersEx locations.
[08:25:50][ResolveAssemblyReference] For SearchPath "{AssemblyFolders}".
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\v3.5\Microsoft.VisualStudio.Shell.Immutable.10.0.winmd", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\v3.5\Microsoft.VisualStudio.Shell.Immutable.10.0.dll", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\v3.5\Microsoft.VisualStudio.Shell.Immutable.10.0.exe", but it didn't exist.
[08:25:50][ResolveAssemblyReference] For SearchPath "{GAC}".
[08:25:50][ResolveAssemblyReference] Considered "Microsoft.VisualStudio.Shell.Immutable.10.0", which was not found in the GAC.
[08:25:50][ResolveAssemblyReference] For SearchPath "{RawFileName}".
[08:25:50][ResolveAssemblyReference] Considered treating "Microsoft.VisualStudio.Shell.Immutable.10.0" as a file name, but it didn't exist.
[08:25:50][ResolveAssemblyReference] For SearchPath "bin\Release-net45\".
[08:25:50][ResolveAssemblyReference] Considered "bin\Release-net45\Microsoft.VisualStudio.Shell.Immutable.10.0.winmd", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "bin\Release-net45\Microsoft.VisualStudio.Shell.Immutable.10.0.dll", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "bin\Release-net45\Microsoft.VisualStudio.Shell.Immutable.10.0.exe", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Primary reference "Microsoft.VisualStudio.Shell.Immutable.11.0".
[08:25:50][ResolveAssemblyReference] C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1605, 5): warning MSB3245: Could not resolve this reference. Could not locate the assembly "Microsoft.VisualStudio.Shell.Immutable.11.0". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors.
[08:25:50][ResolveAssemblyReference] For SearchPath "{TargetFrameworkDirectory}".
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Microsoft.VisualStudio.Shell.Immutable.11.0.winmd", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Microsoft.VisualStudio.Shell.Immutable.11.0.dll", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Microsoft.VisualStudio.Shell.Immutable.11.0.exe", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\Microsoft.VisualStudio.Shell.Immutable.11.0.winmd", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\Microsoft.VisualStudio.Shell.Immutable.11.0.dll", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\Microsoft.VisualStudio.Shell.Immutable.11.0.exe", but it didn't exist.
[08:25:50][ResolveAssemblyReference] For SearchPath "{Registry:Software\Microsoft\.NETFramework,v4.5,AssemblyFoldersEx}".
[08:25:50][ResolveAssemblyReference] Considered AssemblyFoldersEx locations.
[08:25:50][ResolveAssemblyReference] For SearchPath "{AssemblyFolders}".
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\v3.5\Microsoft.VisualStudio.Shell.Immutable.11.0.winmd", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\v3.5\Microsoft.VisualStudio.Shell.Immutable.11.0.dll", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\v3.5\Microsoft.VisualStudio.Shell.Immutable.11.0.exe", but it didn't exist.
[08:25:50][ResolveAssemblyReference] For SearchPath "{GAC}".
[08:25:50][ResolveAssemblyReference] Considered "Microsoft.VisualStudio.Shell.Immutable.11.0", which was not found in the GAC.
[08:25:50][ResolveAssemblyReference] For SearchPath "{RawFileName}".
[08:25:50][ResolveAssemblyReference] Considered treating "Microsoft.VisualStudio.Shell.Immutable.11.0" as a file name, but it didn't exist.
[08:25:50][ResolveAssemblyReference] For SearchPath "bin\Release-net45\".
[08:25:50][ResolveAssemblyReference] Considered "bin\Release-net45\Microsoft.VisualStudio.Shell.Immutable.11.0.winmd", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "bin\Release-net45\Microsoft.VisualStudio.Shell.Immutable.11.0.dll", but it didn't exist.
[08:25:50][ResolveAssemblyReference] Considered "bin\Release-net45\Microsoft.VisualStudio.Shell.Immutable.11.0.exe", but it didn't exist.
[08:25:50][ResolveAssemblyReference] AssemblyFoldersEx location: "{Registry:Software\Microsoft\.NETFramework,v4.5,AssemblyFoldersEx}"
[08:25:50][ResolveAssemblyReference] C:\Program Files (x86)\Microsoft Chart Controls\Assemblies
[08:25:50][NpgsqlDdexProvider\NpgsqlDdexProvider2013.csproj] ResolveComReferences
[08:25:50][ResolveComReferences] ResolveComReference
[08:25:50][ResolveComReference] C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(2015, 5): warning MSB3284: Cannot get the file path for type library "80cc9f66-e7d8-4ddd-85b6-d9e6cd0e93e2" version 8.0. Library not registered. (Exception from HRESULT: 0x8002801D (TYPE_E_LIBNOTREGISTERED))
[08:25:50][ResolveComReference] C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(2015, 5): warning MSB3284: Cannot get the file path for type library "26ad1324-4b7c-44bc-84f8-b86aed45729f" version 10.0. Library not registered. (Exception from HRESULT: 0x8002801D (TYPE_E_LIBNOTREGISTERED))
[08:25:50][ResolveComReference] C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(2015, 5): warning MSB3284: Cannot get the file path for type library "1a31287a-4d7d-413e-8e32-3b374931bd89" version 8.0. Library not registered. (Exception from HRESULT: 0x8002801D (TYPE_E_LIBNOTREGISTERED))
[08:25:50][ResolveComReference] C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(2015, 5): warning MSB3284: Cannot get the file path for type library "2ce2370e-d744-4936-a090-3fffe667b0e1" version 9.0. Library not registered. (Exception from HRESULT: 0x8002801D (TYPE_E_LIBNOTREGISTERED))
[08:25:51][ResolveComReference] C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(2015, 5): warning MSB3283: Cannot find wrapper assembly for type library "stdole". Verify that (1) the COM component is registered correctly and (2) your target platform is the same as the bitness of the COM component. For example, if the COM component is 32-bit, your target platform must not be 64-bit.
[08:25:51][Step 1/2] Process exited with code 1

I was doing some research and found this in Nuget: https://www.nuget.org/packages/Microsoft.VisualStudio.Project.10.0/1.0.0-alpha002
It seems to be a series of NuGet packages which adds references to the many COM interop assemblies and is targeted to projects which create extensions to vs.net.
As we are initially targeting vs.net 2010 and above, we should use the assemblies from vs.net 2010.
Robert Simpson, author of SQLite .Net Data Provider, once told me that he learned that in order to make an extension to work on multiple vs.net versions, we should use the DLL's from the lowest vs.net version we are targeting. Thank you, Robert, for the tip! :)

If we can add the interop assemblies with those Nuget packages, we could then copy the targets to the server and use it, just like http://blogs.msdn.com/b/aaronmar/archive/2011/05/10/visual-studio-extensions-and-build-servers.aspx says.

Another partial solution to get your code merged as soon as possible would be to change the solution to have the DDEX project loaded by demand. This would make our build server not try to compile it by default and it wouldn't raise any error.

A last option would be to install vs.net express and try to install visual studio sdk. But I don't know if the sdk would install with vs.net express. I'll need to check this out.

@kenjiuno
Contributor

Hi @franciscojunior

Thanks for information! I'll try NuGet package.

@kenjiuno
Contributor

Ok, finally NpgsqlDdexProvider.vsix should be built...

@franciscojunior
Member

That's awesome, @kenjiuno!! You rock!

But when running the build on the build server I noticed a little thing: because we need to compile to net4.5 we use the 2013 project and not the 2010.

Given this new requirement for the ddex to be compiled with 2010 in order to keep backwards compatibility, I think we will also need to compile using the 2010 project too. I'll ask @roji how we can do that.

Would you mind to make a last tweak and copy the changes from the ddex 2010 project to the 2013? This way the build server will finally create the NpgsqlDdexProvider.vsix as we wanted... :-)

Sorry for this problem, but I think we are very close. You did an excellent job! Thank you very much for your comprehension.

@franciscojunior
Member

Hi, @kenjiuno !

I just sent a mail to @roji asking him if it would be possible to add another configuration to our build server in order to compile Npgsql using vs.net2010 solution file.

@kenjiuno
Contributor

But when running the build on the build server I noticed a little thing: because we need to compile to net4.5 we use the 2013 project and not the 2010.

Yeah I'll try it! :)

@franciscojunior
Member

Excellent work, @kenjiuno !!
Thank you very much!! You rock!

I could get the project to compile on .net 2.0, 3.5, 4.0 and 4.5. The only error platform was Mono 4.5. Somehow it is trying to compile the LegacyEntityFramework project which isn't supported on Mono. I'll investigate why it is trying to compile it because on master branch it doesn't and the build is completed successfully.

@kenjiuno
Contributor

Hi.

Thank you for checking latest commit.

Sorry Vs2013 ver is WIP. There are some problems left with VSsdk.

I'll continue working next night. :)

Kenji uno

2014/05/21 4:26�$B!"�(B"Francisco Figueiredo Jr." notifications@github.com �$B$N%a%C%;!<%8�(B:

Excellent work, @kenjiuno !!
Thank you very much!! You rock!

I could get the project to compile on .net 2.0, 3.5, 4.0 and 4.5. The only error platform was Mono 4.5. Somehow it is trying to compile the LegacyEntityFramework project which isn't supported on Mono. I'll investigate why it is trying to compile it because on master branch it doesn't and the build is completed successfully.

�$B!=�(B
Reply to this email directly or view it on GitHub.

@franciscojunior
Member

Em 20/05/2014 19:51, "kenjiuno" notifications@github.com escreveu:

Hi.

Hi!

Thank you for checking latest commit.

You are welcome. And thank you for your hard work.

Sorry Vs2013 ver is WIP. There are some problems left with VSsdk.

I'll continue working next night. :)

No problem. As it is related only to mono, and legacy entity framework, I
think it may be some define flag which is making the build for mono try to
compile the legacy entity framework code.

I'll continue checking what can be happening and if I find anything I'll
let you know.

Again, thank you very much, Kenji, for your support!

Kenji uno

2014/05/21 4:26 $B!" (B"Francisco Figueiredo Jr." <
notifications@github.com> $B$N%a%C%;!<%8 (B:

Excellent work, @kenjiuno !!
Thank you very much!! You rock!

I could get the project to compile on .net 2.0, 3.5, 4.0 and 4.5. The
only error platform was Mono 4.5. Somehow it is trying to compile the
LegacyEntityFramework project which isn't supported on Mono. I'll
investigate why it is trying to compile it because on master branch it
doesn't and the build is completed successfully.

$B!= (B
Reply to this email directly or view it on GitHub.


Reply to this email directly or view it on GitHub.

@franciscojunior
Member

Ah, and don't worry about this X to the side of your last commit. As I said
before, the builds for 2.0, 3.5, 4.0 and 4.5 worked OK. Only mono is having
problems now. But as there was a problem the first time I tried to compile,
(I had to do a clean checkout to get it to compile ok) the build server
returned the first attempt result. But when the mono problem is resolved
and the build comes clean, it will turn to the green tick. :-)
Em 20/05/2014 19:51, "kenjiuno" notifications@github.com escreveu:

Hi.

Thank you for checking latest commit.

Sorry Vs2013 ver is WIP. There are some problems left with VSsdk.

I'll continue working next night. :)

Kenji uno

2014/05/21 4:26 $B!" (B"Francisco Figueiredo Jr." <
notifications@github.com> $B$N%a%C%;!<%8 (B:

Excellent work, @kenjiuno !!
Thank you very much!! You rock!

I could get the project to compile on .net 2.0, 3.5, 4.0 and 4.5. The
only error platform was Mono 4.5. Somehow it is trying to compile the
LegacyEntityFramework project which isn't supported on Mono. I'll
investigate why it is trying to compile it because on master branch it
doesn't and the build is completed successfully.

$B!= (B
Reply to this email directly or view it on GitHub.


Reply to this email directly or view it on GitHubhttps://github.com/npgsql/Npgsql/pull/213#issuecomment-43693487
.

@kenjiuno
Contributor

hehe, I hope that the latest commit will build up a bin\Release-net45\NpgsqlDdexProvider.vsix file.

I have worked on clean Windows Server 2012 R2 installation without installing VS2013. It could build up vsix file on MSBuild environment. Thanks!

@kenjiuno kenjiuno Tweak build configuration.
Npgsql2013.sln -> NpgsqlDdexProvider2013.csproj
- off Debug-net20
- off Debug-net35
- off Debug-net40
- on Debug-net45
- on Debug-net45-ef6
- off Release-net20
- off Release-net35
- off Release-net40
- on Release-net45
- on Release-net45-ef6
7eb378e
@franciscojunior
Member

hehe, I hope that the latest commit will build up a bin\Release-net45\NpgsqlDdexProvider.vsix file.

I have worked on clean Windows Server 2012 R2 installation without installing VS2013. It could build up vsix file on MSBuild environment. Thanks!

Great! I'll try it now...

Now I'm getting the following error when running the build: :(

C:\dev\TeamCity\buildAgent\work\c548594815738d27\Tools\vssdk12_tools\Microsoft.VsSDK.targets(1130, 5): error MSB4062: The "VsTemplatePaths" task could not be loaded from the assembly C:\dev\TeamCity\buildAgent\work\c548594815738d27\Tools\vssdk12_tools\Microsoft.VsSDK.Build.Tasks.dll. Could not load file or assembly 'Microsoft.Build.Utilities.v12.0, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified. Confirm that the <UsingTask> declaration is correct, that the assembly and all its dependencies are available, and that the task contains a public class that implements Microsoft.Build.Framework.ITask.

It is strange because your last tweak didn't change anything about assemblies...

I'll keep trying to check what is wrong. If I find anything I'll let you know.

@franciscojunior
Member

It is strange because your last tweak didn't change anything about assemblies...

Whooops, I didn't notice the other commits you did before the tweak.

Build was working when the branch was at the commit 0cae953. I'll keep trying the other commits to see which one break the build.

@kenjiuno
Contributor

Now I'm getting the following error when running the build: :(

Ah, sorry, it needs Microsoft Build Tools 2013 about Microsoft.Build.Utilities.v12.0.
http://www.microsoft.com/en-US/download/details.aspx?id=40760

Could you prepare it on build server?

@franciscojunior
Member

Ah, sorry, it needs Microsoft Build Tools 2013 about Microsoft.Build.Utilities.v12.0.
http://www.microsoft.com/en-US/download/details.aspx?id=40760

Could you prepare it on build server?

Yes, I can. I remember @roji (Shay), who setup the build server, said he installed all build tools.

But I'm curious... The build was working ok at the 0cae953 commit and your last changes didn't seem to touch anything assembly related. Why would it be giving problems now?

Well, I installed build tools in my machine to make some tests and I noticed the following:

When I run:

msbuild Npgsql2013.sln /p:Configuration=Debug-Net20

The DDex and EntityFramework projects are being compiled. Which gives me error because both weren't supposed to be compileable on .net 2.0

I tried the same command in the master branch and I noticed an interesting message:

Microsoft (R) Build Engine version 12.0.21005.1
[Microsoft .NET Framework, version 4.0.30319.18444]
Copyright (C) Microsoft Corporation. All rights reserved.

Building the projects in this solution one at a time. To enable parallel build,
please add the "/m" switch.
Build started 22/05/2014 11:01:22.
Project "\GitHub\Npgsql\Npgsql2013.sln"
 on node 1 (default targets).
ValidateSolutionConfiguration:
  Building solution configuration "Debug-Net20|AnyCPU".
ValidateProjects:
  The project "Npgsql.EntityFramework" is not selected for building in solution
   configuration "Debug-net20|AnyCPU".
  The project "Npgsql.EntityFrameworkLegacy" is not selected for building in so
  lution configuration "Debug-net20|AnyCPU".

Note the messages talking about EntityFramework and EntityFrameworkLegacy not being selected for building.

I remember @roji did a lot of tweaks to the project files to be able to build on the different .net versions. I'll check what this ValidateProjects is doing.

@kenjiuno kenjiuno Tweak project configuration.
Deleted
- Debug-net40
- Release-net40
- Debug-net35
- Release-net35
- Debug-net20
- Release-net20
- Debug-net45-EF6
- Release-net45-EF6
933b9db
@kenjiuno
Contributor

Hi.

But I'm curious... The build was working ok at the 0cae953 commit and your last changes didn't seem to touch anything assembly related. Why would it be giving problems now?

Hmm, I'll check it next night... I have looked at my changes since 0cae953 commit, but there is no idea for now. Let me check more.

The DDex and EntityFramework projects are being compiled. Which gives me error because both weren't supposed to be compileable on .net 2.0

Ok, I have removed redundant configurations other than .net 4.5. It will be ok.

@franciscojunior
Member

Hmm, I'll check it next night... I have looked at my changes since 0cae953 commit, but there is no idea for now. Let me check more.

Ok. I'll wait for your results.

Ok, I have removed redundant configurations other than .net 4.5. It will be ok.

Great! I'll make some tests and will let you know what I find.

@franciscojunior
Member

I tried it here again and the project still tries to compile EntityFramework projects when using the net20 platform:

Project "C:\Users\franciscojunior\Desenvolvimento\GitHub\Npgsql\Npgsql2013.sln"
 (1) is building "C:\Users\franciscojunior\Desenvolvimento\GitHub\Npgsql\Npgsql
.EntityFramework\Npgsql.EntityFramework.csproj" (3) on node 1 (default targets)
.
GenerateTargetFrameworkMonikerAttribute:
Skipping target "GenerateTargetFrameworkMonikerAttribute" because all output fi
les are up-to-date with respect to the input files.
CoreCompile:
  C:\Program Files (x86)\MSBuild\12.0\bin\Csc.exe /noconfig /nowarn:1701,1702 /
  nostdlib+ /errorreport:prompt /warn:4 /doc:bin\Debug-net40\Npgsql.EntityFrame
  work.xml /define:TRACE;DEBUG;WINDOWS;UNMANAGED;NET35;NET40;ENTITIES6 /highent
  ropyva- /reference:C:\Users\franciscojunior\Desenvolvimento\GitHub\Npgsql\pac
  kages\EntityFramework.6.0.1\lib\net40\EntityFramework.dll /reference:C:\Users
  \franciscojunior\Desenvolvimento\GitHub\Npgsql\packages\EntityFramework.6.0.1
  \lib\net40\EntityFramework.SqlServer.dll /reference:"C:\Program Files (x86)\R
  eference Assemblies\Microsoft\Framework\.NETFramework\v4.0\mscorlib.dll" /ref
  erence:C:\Users\franciscojunior\Desenvolvimento\GitHub\Npgsql\Npgsql\bin\Debu
  g-net20\Npgsql.dll /reference:"C:\Program Files (x86)\Reference Assemblies\Mi
  crosoft\Framework\.NETFramework\v4.0\System.ComponentModel.DataAnnotations.dl
  l" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framewor
  k\.NETFramework\v4.0\System.Configuration.dll" /reference:"C:\Program Files (
  x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.Core.
  dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framew
  ork\.NETFramework\v4.0\System.Data.dll" /reference:"C:\Program Files (x86)\Re
  ference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.dll" /refere
  nce:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFram
  ework\v4.0\System.Transactions.dll" /reference:"C:\Program Files (x86)\Refere
  nce Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.Xml.dll" /debug+
   /debug:full /filealign:512 /keyfile:..\Npgsql.snk /optimize- /out:obj\Debug-
  net40\Npgsql.EntityFramework.dll /resource:NpgsqlSchema.msl,Npgsql.NpgsqlSche
  ma.msl /resource:NpgsqlSchema.ssdl,Npgsql.NpgsqlSchema.ssdl /resource:NpgsqlS
  chemaV3.ssdl,Npgsql.NpgsqlSchemaV3.ssdl /resource:NpgsqlProviderManifest.Mani
  fest.xml,Npgsql.NpgsqlProviderManifest.Manifest.xml /target:library /utf8outp
  ut NpgsqlConnectionFactory.cs NpgsqlMigrationSqlGenerator.cs NpgsqlServices.c
  s NpgsqlProviderManifest.cs Properties\AssemblyInfo.cs SqlGenerators\SqlBaseG
  enerator.cs SqlGenerators\SqlDeleteGenerator.cs SqlGenerators\SqlInsertGenera
  tor.cs SqlGenerators\SqlSelectGenerator.cs SqlGenerators\SqlUpdateGenerator.c

Another thing I noticed is that when compiling for the net20 configuration, Debug-Net40 folders are created in the EntityFramework and EntityFrameworkEntityLegacy bin folders. This seems to indicate that when compiling for the net20 configuration, somehow the build process seems that the net40 configuration was selected. Maybe this is the cause of the problem.

I'm still checking it.

@franciscojunior
Member

This is the command line I used in a VS.net 2013 command prompt:

msbuild Npgsql2013.sln /p:Configuration=Debug-Net20
@franciscojunior
Member

Hi, @kenjiuno !

I think I found the culprit! It is the "Mixed Platforms" platform.

It seems this is what is causing the other projects to be compiled incorrectly.

If I use the following command line:

msbuild Npgsql2013.sln /p:Configuration="Debug-Net20" /p:Platform="AnyCPU"

Which specifies the AnyCPU platform to be used (the same one in the master branch which is working) the compilation works as expected:

ValidateProjects:
  The project "Npgsql.EntityFramework" is not selected for building in solution
   configuration "Debug-net20|AnyCPU".
  The project "Npgsql.EntityFrameworkLegacy" is not selected for building in so
  lution configuration "Debug-net20|AnyCPU".
  The project "NpgsqlDdexProvider2013" is not selected for building in solution
   configuration "Debug-net20|AnyCPU".

I think that if you remove all the "Mixed Platforms" lines in the project file, it will work ok.

kenjiuno added some commits May 29, 2014
@kenjiuno kenjiuno Deleted 'Mixed Platforms' 28bea68
@kenjiuno kenjiuno Tweak Npgsql2012.sln build configuration.
Deleted from NpgsqlDdexProvider2012.csproj:
- Debug-net20
- Debug-net35
- Debug-net40
- Debug-net45-ef6
- Release-net20
- Release-net35
- Release-net40
- Release-net45-ef6
a8e3923
@kenjiuno
Contributor

Hi.

I think I found the culprit! It is the "Mixed Platforms" platform.

Ok, I have done! But I'll need more tweaks for 2013 solution.

btw, Microsoft Visual Studio 2013 Update 2 has been released since 5/8/2014.
http://www.microsoft.com/en-us/download/details.aspx?id=42666

I'll fix 2013 solution after Update 2 installation.

Thanks!

@franciscojunior
Member

Ok, I have done! But I'll need more tweaks for 2013 solution.

Great!

btw, Microsoft Visual Studio 2013 Update 2 has been released since 5/8/2014.
http://www.microsoft.com/en-us/download/details.aspx?id=42666

I'll fix 2013 solution after Update 2 installation.

Thanks!

No problem.
I'll wait for your other tweaks.

@kenjiuno
Contributor

Hi.

any_cpu_and_anycpu

Any CPU caused problem. I have removed Any CPU solution-platform from Npgsql2013.sln. It will be ok.

@franciscojunior
Member

Excellent, @kenjiuno !
Now it is working ok for ms.net.

We are now back to the problem of Mono build. Mono is trying to compile DDEX provider and is giving problems:

C:\PROGRA~2\MONO-3~1.3\lib\mono\4.0\Microsoft.Common.targets: error : Tool exite
d with code: 255. Output: Read in 3 resources from 'C:\Users\franciscojunior\Des
envolvimento\GitHub\Npgsql\NpgsqlDdexProvider\VSPackage.resx'
Writing resource file...  Done.

Unhandled Exception:
System.TypeInitializationException: An exception was thrown by the type initiali
zer for System.Drawing.GDIPlus ---> System.DllNotFoundException: /tmp/install/li
b/libgdiplus.so
  at (wrapper managed-to-native) System.Drawing.GDIPlus:GdiplusStartup (ulong&,S
ystem.Drawing.GdiplusStartupInput&,System.Drawing.GdiplusStartupOutput&)
  at System.Drawing.GDIPlus..cctor () [0x00000] in <filename unknown>:0
  --- End of inner exception stack trace ---
  at System.Drawing.Icon.Dispose () [0x00000] in <filename unknown>:0
  at (wrapper remoting-invoke-with-check) System.Drawing.Icon:Dispose ()
  at System.Drawing.Icon.Finalize () [0x00000] in <filename unknown>:0

                        Task "GenerateResource" execution -- FAILED

But DDEX wasn't ever supposed to be built on Mono anyway. So, I'm now looking for a way to make Mono not build the DDEX project.

EntityFrameworkLegacy isn't supported by Mono either and it isn't being compiled. I'll check how this is being done in the current master and will let you know what I get.

Thank you very much, @kenjiuno ! You rock!

I think we are closer than ever to get DDEX integrated to Npgsql!

@kenjiuno
Contributor
kenjiuno commented Jun 1, 2014

Hi.

I got same error as you got, from mono's xbuild. I have installed mono-3.2.3-gtksharp-2.12.11-win32-0.exe today.

I'm searching a good way to exclude DDEX build from mono, but there is no good news for now.

I have 2 things to research:

  • distinguish xbuild/msbuild.
  • omit DDEX build according to Condition attribute.

Some links I'm checking.

Solution (.sln) File
http://msdn.microsoft.com/ja-jp/library/bb165951(v=vs.90).aspx

MSBuild Properties
http://msdn.microsoft.com/en-us/library/ms171458

Property Functions
http://msdn.microsoft.com/en-us/library/dd633440

@kenjiuno kenjiuno Removed redundant references from NpgsqlDdexProvider2013.csproj
- PresentationCore
- PresentationFramework
- UIAutomationTypes
- WindowsBase
3220759
@franciscojunior
Member

Em 01/06/2014 09:14, "kenjiuno" notifications@github.com escreveu:

Hi.

Hi!

I got same error as you got, from mono's xbuild. I have installed
mono-3.2.3-gtksharp-2.12.11-win32-0.exe today.

I'm searching a good way to exclude DDEX build from mono, but there is no
good news for now.

I have 2 things to research:

distinguish xbuild/msbuild.
omit DDEX build according to Condition attribute.

I think those are good alternatives.

First, I'd like to investigate what happens with entityframeworklegacy
project. Because mono doesn't support it and master branch somehow skips
this project from mono build.

I asked Shay if he had some tips about that. I'm waiting his response.

For now I'll concentrate in finding why the master branch works. I also
tried to use mono to compile the master branch in my machine and it failed
too. But if the build server can build it successfully, it may be some
configuration in the build server.

Some links I'm checking.

Solution (.sln) File
http://msdn.microsoft.com/ja-jp/library/bb165951(v=vs.90).aspx

MSBuild Properties
http://msdn.microsoft.com/en-us/library/ms171458

Property Functions
http://msdn.microsoft.com/en-us/library/dd633440

Great! I'll check those references too.


Reply to this email directly or view it on GitHub.

@kenjiuno
Contributor
kenjiuno commented Jun 3, 2014

There are some workarounds I have found today.


Method 1 --- tweak DefaultTargets in NpgsqlDdexProvider2013.csproj.

From:

<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ...>
  ...
</Project>

To:

<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="BuildOnlyMSBuild" ...>
  ...
  <Target Name="BuildOnlyMSBuild" DependsOnTargets="Build" Condition="$(MONO) == ''">
  </Target>
</Project>

This will skip DDEX building:

xbuild Npgsql2013.sln /p:Configuration=Release-net45 /property:MONO=1

Method 2 --- using explicit target on xbuild.

xbuild Npgsql2013.sln /p:Configuration=Release-net45 /t:Npgsql;Npgsql_EntityFramework;NpgsqlTests

Some information I have checked:

@kenjiuno kenjiuno Testing BuildOnlyMSBuild.
xbuild Npgsql2013.sln /p:Configuration=Release-net45 /property:MONO=1
4a49ea2
@franciscojunior
Member

Excellent, @kenjiuno !

I found out why the EntityFrameworkLegacy project doesn't give errors in the build server. msbuild compilations are run first, and when xbuild build runs later, it detects the EntityFramworkLegacy is already built and just skips it. I could reproduce this by calling msbuild in the same order as it is run on the server: Debug-Net45, Debug-net40, Debug-net35 and Debug-Net20. Then, I run xbuild Debug-net45 which is used by Mono and it skipped EntityFrameworkLegacy.

                Project "C:\Users\franciscojunior\Desenvolvimento\GitHub\Npgsql\
Npgsql.EntityFramework\Npgsql.EntityFrameworkLegacy.csproj" (default target(s)):

                        Target PrepareForBuild:
                                Configuration: Debug-net45 Platform: AnyCPU
                        Target ResolveAssemblyReferences:
C:\PROGRA~2\MONO-3~1.3\lib\mono\4.0\Microsoft.Common.targets:  warning : Referen
ce 'System.Data.Entity' not resolved
                                For searchpath {CandidateAssemblyFiles}
                                Warning: {CandidateAssemblyFiles} not supported
currently
                                For searchpath {HintPathFromItem}
                                HintPath attribute not found
                                For searchpath {TargetFrameworkDirectory}
                                Considered target framework dir C:\PROGRA~2\MONO
-3~1.3\lib\mono\4.5\..\xbuild-frameworks\.NETFramework\v4.5\RedistList\..\..\..\
..\4.5, assembly named 'System.Data.Entity' not found.
                                Considered target framework dir C:\PROGRA~2\MONO
-3~1.3\lib\mono\4.5\..\xbuild-frameworks\.NETFramework\v4.5\RedistList\..\..\..\
..\4.5\Facades\, assembly named 'System.Data.Entity' not found.
                                For searchpath {PkgConfig}
                                Considered System.Data.Entity, but could not fin
d in any pkg-config files.
                                For searchpath {GAC}
                                Considered System.Data.Entity, but could not fin
d in the GAC.
                                For searchpath {RawFileName}
                                Considered 'C:\Users\franciscojunior\Desenvolvim
ento\GitHub\Npgsql\Npgsql.EntityFramework\System.Data.Entity' as a file, but the
 file does not exist
                                For searchpath bin\Legacy-Debug-net45\
                                Considered 'C:\Users\franciscojunior\Desenvolvim
ento\GitHub\Npgsql\Npgsql.EntityFramework\bin\Legacy-Debug-net45\System.Data.Ent
ity' as a file, but the file does not exist
                                Considered 'C:\Users\franciscojunior\Desenvolvim
ento\GitHub\Npgsql\Npgsql.EntityFramework\bin\Legacy-Debug-net45\System.Data.Ent
ity.exe' as a file, but the file does not exist
                                Considered 'C:\Users\franciscojunior\Desenvolvim
ento\GitHub\Npgsql\Npgsql.EntityFramework\bin\Legacy-Debug-net45\System.Data.Ent
ity.dll' as a file, but the file does not exist
                        Target GenerateSatelliteAssemblies:
                        No input files were specified for target GenerateSatelli
teAssemblies, skipping.
                        Target GenerateTargetFrameworkMonikerAttribute:
                        Skipping target "GenerateTargetFrameworkMonikerAttribute
" because its outputs are up-to-date.
                        Target CoreCompile:
                        Skipping target "CoreCompile" because its outputs are up
-to-date.
                Done building project "C:\Users\franciscojunior\Desenvolvimento\
GitHub\Npgsql\Npgsql.EntityFramework\Npgsql.EntityFrameworkLegacy.csproj".

Note the last lines which say: Skipping target "CoreCompile" because its outputs are up-to-date.

Your idea of a parameter for Mono building is very good! I'll check with @roji if what I found about EntityFrameworkLegacy is right or not. I think in the future we would need to add something like that to EntityFrameworkLegacy project as well.

Another thing I would need to do is to change the build server to use this MONO parameter in the build command line. But I think this is easier.

@franciscojunior
Member

Excellent, @kenjiuno !
Success!!!

Your changes seem to work very well. But there is an strange thing: I didn't change anything in the server. Neither did I install the vs.net build tools 2013 nor I changed the build parameters for Mono build.

Investigating....

I'm now going to change the build server configuration to publish the DDEX vsix file as artifact.

@franciscojunior
Member

Well, I just noticed from build logs, that DDex project isn't being built.

Checking....

@franciscojunior
Member

Found the problem. Somehow the last change BuildOnlyMSBuild tweak is making the build server to ignore the DDex Project even when building under ms.net.

When I set the build server to build the commit 3220759, it started to compile the project DDEX project and complaint about the missing assemblies from build tools :)

@kenjiuno , I'll try to check if there is anything I can do in the build server. But if I can't get it working, I think we should go with the idea of specifying explicit targets to be built by Mono as you said in your method 2. What do you think?

@franciscojunior
Member

I just installed vs.net 2013 build tools and can confirm that the .vsix is being compiled in the build server!
But only if I use the commit 3220759. :)

@franciscojunior
Member

@roji sent me a mail talking about the possibility of changing the server to use "nuget package restore" in order to download the packages instead of adding them to the project. The project would be much smaller. I asked him to make the changes as we already have the EF6.0.1 and Nuget packages in the project.

@franciscojunior
Member

@kenjiuno , I just made the change in our build server to use your method 2 to compile with mono and it worked ok! I think we can go with this approach because by specifying explicitly the targets to compile, we also fix the problem with EntityFrameworkLegacy which presents a problem when compiling with Mono. (If I do a clean build with Mono, it gives me error because it tries to compile NpgsqlEntityFrameworkLegacy project).

@franciscojunior
Member

@kenjiuno , I don't have your email. Please, send me a message: francisco at npgsql dot org.

@kenjiuno
Contributor
kenjiuno commented Jun 8, 2014

Ok, commit 3220759 content will be latest one now!

@franciscojunior
Member

Hi, @kenjiuno !

I just configured the server to use a step in the build process to do the nuget restore to get the packages. In the logs, when I tested your pull request, I could see that the repositories file specifies a packages.config file which doesn't exist: Npgsql/packages.config.

With this change, we don't need to add packages to the repository. The server will retrieve them for us. This way, we can remove the files we added to the packages folder and the repository won't get bigger and we also will be able to handle possible future updates through nuget configuration.

I think this is the last step. With this new nuget restore package I added, We can get rid of the Nunit and EntityFramework packages present in the repository. I even add a test pull request to test Nunit removal: #258 . It worked ok!

Please, let me know if I was too much confusing. :)

@kenjiuno
Contributor

Ok, I have removed all contents from packages folder.

I have confirmed that VS2012 and VS2013 can restore all of them on build!

@kenjiuno
Contributor

Trouble shooting info:


KeyNotFoundException on Entity Data Model Wizard (VS2013)

Workarounds, try one of following methods:

(Edited 19 Jun)
Sorry. The later 2 methods cannot be used actually. Earlier VS2013 has problem of "Table data viewer hangs".
https://connect.microsoft.com/VisualStudio/feedback/details/811191/table-data-viewer-hangs-up-on-npgsql-ddex-provider

Message:

Microsoft Visual Studio

An error occurred while connecting to the database. The database 
might be unavailable. An exception of type 
'System.Data.Entity.Core.EntityCommandCompilationException' 
occurred. The error message is: 'An error occurred while preparing the 
command definition. See the inner exception for details.
The inner exception caught was of type
'System.Collections.Generic.KeyNotFoundException', with this error
message: 'The given key was not present in the dictionary.'.'.

ef6viewcolumns

@Emill
Member
Emill commented Jun 19, 2014

I tried your latest commit and it works well :)
I don't get that error message on the npgsql_tests database (using VS2013 Update 2) in Entity Data Model Wizard.

@franciscojunior
Member

Ok, I have removed all contents from packages folder.

I have confirmed that VS2012 and VS2013 can restore all of them on build!

Excellent! So I think we have everything in place to merge.

@roji , do you think there is anything left regarding the package handling which we need to take care before merging this PR?

@roji
Member
roji commented Jun 21, 2014

@franciscojunior, two comments.

First, I think you went too far: the packages/ directory is supposed to contain the repositories.config file which points to the projects' individual packages.config, I think it should be restored.

Also, you should add the following line to the project's .gitignore file: packages/*/
This will ensure that no package directories are ever committed inside packages, but that the repositories.config file is properly tracked in git.

@franciscojunior
Member

First, I think you went too far: the packages/ directory is supposed to contain the repositories.config file which points to the projects' individual packages.config, I think it should be restored.

Ah, ok. I didn't know that. As the packages were being restored correctly, I thought repositories.config were optional :)
@kenjiuno , would you mind to restore only the packages.config file?

Also, you should add the following line to the project's .gitignore file: packages/*/
This will ensure that no package directories are ever committed inside packages, but that the repositories.config file is properly tracked in git.

Agreed. I think this change would be made after we apply this PR, right? This way git would still process the removal of the packages folders. Or git would still process the removal even with the .gitignore in the same PR?

@franciscojunior
Member

Well, I think the moment to merge this PR finally has come!
Let's do this!

@franciscojunior franciscojunior merged commit b3a16d9 into npgsql:master Jun 22, 2014
@kenjiuno
Contributor

Thanks for merging!

I'll check if binaries can be built on master branch with VS2012/VS2013. I'll post vsix installer screen shots, too.

@franciscojunior
Member

Thanks for merging!

You are welcome! And thank you for your hard work!

I'll check if binaries can be built on master branch with VS2012/VS2013. I'll post vsix installer screen shots, too.

Great!
Please, let us know how it goes with VS2012 too.

I can confirm that the binaries can be built on master branch on our build server: https://build.npgsql.org/viewLog.html?buildId=1354&tab=artifacts&buildTypeId=npgsql_all
We even have the vsix package build for vs2013. ;) I'll need to check with @roji how we can setup a build of the 2010 vsix.

@franciscojunior
Member

I also can confirm the packages are restored correctly when running on Xamarin Studio under Mono on OS X :)

@kenjiuno
Contributor

Hi.

Here are some screenshots:

NpgsqlDdexProvider_VSIX_Installer
npgsqlddexprovider_vsix_installer

Installation_Complete
installation_complete

This_extension_is_already_installed_to_all_applicable_products
this_extension_is_already_installed_to_all_applicable_products

NpgsqlDdexProvider_Tools_Extensions_and_Updates
npgsqlddexprovider_tools_extensions_and_updates

Connect_to_Database
connect_to_database

Add_Connection
add_connection

Server_Explorer
server_explorer

Sorry, I have noticed that table names having upper-case won't be previewed. I'll work on it.

42p01

@roji
Member
roji commented Jun 22, 2014

@kenjiuno, thanks for the screenshots! @franciscojunior, it's probably a good idea to have a small guide with these in the wiki?

@franciscojunior, regarding your git question on removing and .gitignore. .gitignore only has an effect on untracked files. So it's perfectly OK to remove files from git and add them to .gitignore in the same commit.

@franciscojunior
Member

@kenjiuno, thanks for the screenshots! @franciscojunior, it's probably a good idea to have a small guide with these in the wiki?

Agreed! I'll take care of that. We even have a wiki page about de where I'll add those images and more documentation.

@franciscojunior, regarding your git question on removing and .gitignore. .gitignore only has an effect on untracked files. So it's perfectly OK to remove files from git and add them to .gitignore in the same commit.

Ahhhh , great! I didn't know that. I only had a feeling git would do the right thing though. :) I already merged the gitignore change too.

@kenjiuno
Contributor

Please visit Wiki for the latest info →→→ https://github.com/npgsql/npgsql/wiki/Visual-Studio-Design-Time-Support---DDEX-Provider

VS2013Pro+NpgsqlDdexProvider+EF6 how to

Prerequisites:

Build your Npgsql

  1. Get Npgsql source code. Use git or https://github.com/npgsql/Npgsql/archive/master.zip (Tested with https://github.com/npgsql/Npgsql/archive/841f8b6f157f3209ce8aeb565c75d01de08cb30c.zip).
  2. Open [Npgsql2013.sln].
  3. Select [Release-net45] at [BUILD]→[Configuration Manager...]
  4. Build Solution.

You will obtain 3 important files:

  • Npgsql\bin\Release-net45\Npgsql.dll
  • Npgsql.EntityFramework\bin\Release-net45\EntityFramework.dll
  • NpgsqlDdexProvider\bin\Release-net45\NpgsqlDdexProvider.vsix

Install assemblies into GAC

  1. Open [Developer Command Prompt for VS2013] from start menu, [Visual Studio 2013]→[Visual Studio Tools]. Use Run as Administrator!
  2. Use gacutil to register [Npgsql.dll] from [Npgsql\bin\Release-net45] folder.
  3. Use gacutil to register [Mono.Security.dll] from [lib\Mono.Security\4.0] folder.

How to check installed assembly: gacutil /l Npgsql

C:\Windows\system32>gacutil /l Npgsql
Microsoft (R) .NET Global Assembly Cache Utility.  Version 4.0.30319.33440
Copyright (c) Microsoft Corporation.  All rights reserved.

The Global Assembly Cache contains the following assemblies:
  Npgsql, Version=2.2.0.0, Culture=neutral, PublicKeyToken=5d8b90d52f46fda7, processorArchitecture=MSIL

Number of items = 1

Also: gacutil /l Mono.Security

C:\Windows\system32>gacutil /l Mono.Security
Microsoft (R) .NET Global Assembly Cache Utility.  Version 4.0.30319.33440
Copyright (c) Microsoft Corporation.  All rights reserved.

The Global Assembly Cache contains the following assemblies:
  Mono.Security, Version=4.0.0.0, Culture=neutral, PublicKeyToken=0738eb9f132ed756, processorArchitecture=MSIL

Number of items = 1

Install NpgsqlDdexProvider.vsix

  1. Run [NpgsqlDdexProvider.vsix] from [NpgsqlDdexProvider\bin\Release-net45] folder.

Edit machine.config files

  1. Add the add-element into DbProviderFactories-element.
<system.data>
  <DbProviderFactories>
    ...
    <add name="Npgsql Data Provider" 
         invariant="Npgsql" 
         description=".Net Data Provider for PostgreSQL" 
         type="Npgsql.NpgsqlFactory, Npgsql, Version=2.2.0.0, Culture=neutral, PublicKeyToken=5d8b90d52f46fda7" 
         support="FF" />
  </DbProviderFactories>
</system.data>

machine.config will be found in following places:

  • C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\machine.config
  • C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\machine.config

Note: Don't forget to launch text editor with Run as Administrator.
Note: Framework64 will be found only for 64-bit Windows.

Prepare new project for testing

  1. Launch Visual Studio 2013.
  2. [FILE]→[New]→[Project...]
  3. [Console Application]
  4. Name is [testef] for example.

Install EntityFramework 6

  1. Right click project [testef]
  2. [Managet NuGet Packages...]
  3. Type "EntityFramework" at [Search Online (Ctrl+E)]
  4. Install "EntityFramework". Version is 6.1.1 for now.

Add Npgsql.dll and Npgsql.EntityFramework.dll manually

  1. Right click project [testef]
  2. [Add]→[Existing Item...]
  3. Add 2 files you have built:
  • Npgsql\bin\Release-net45\Npgsql.dll
  • Npgsql.EntityFramework\bin\Release-net45\EntityFramework.dll

Note: Select [All Files (.)] to show your DLL files.

Add references to Npgsql and Npgsql.EntityFramework

  1. Right click [References]
  2. [Add Reference...]
  3. Click [Browse...]
  4. Select 2 DLL in your project folder to add them:

Npgsql.dll
Npgsql.EntityFramework.dll

Add EF6 provider into App.config

  1. Open [App.config]
  2. Add provider-element into providers-element.
<?xml version="1.0" encoding="utf-8"?>
<configuration>
  ...
  <entityFramework>
    ...
    <providers>
      <provider invariantName="Npgsql" type="Npgsql.NpgsqlServices, Npgsql.EntityFramework" />
      ...
    </providers>
  </entityFramework>
  ...
</configuration>

Build once

  1. Build your project.

New ADO.NET Entity Data Model

  1. Right click project [testef]
  2. [Add]→[New Item...]
  3. [ADO.NET Entity Data Model]
  4. Name is [Model1] for example.
  5. Click [Add]
  6. [EF Designer from database] at Choose Model Contents.
    ef1
  7. [New Connection] at Choose Your Data Connection.
    ef2
  8. [PostgreSQL Database] at Change Data Source.
    ef3
  9. Fill properties in Connection Properties. It is easy to fill everything by setting [ConnectionString].
    ef4

My sample ConnectionString:

PORT=5432;TIMEOUT=15;POOLING=True;MINPOOLSIZE=1;MAXPOOLSIZE=20;COMMANDTIMEOUT=20;COMPATIBLE=2.1.3.0;HOST=g45;DATABASE=npgsql_tests_ef;PASSWORD=npgsql_tests;USER ID=npgsql_tests;PRELOADREADER=True

Note: Don't forget to set PreloadReader to true.

  1. Select [Yes, include the sensitive data in the connection string.] in this case for easy setup.
    ef5
  2. Select tables which you want, at Choose Your Database Objects and Settings.
    ef6

Note: remember the text npgsql_tests_efModel at [Model Namespace].

  1. Click OK for Security Warning. T4 Templates generator warns you as it contains just runnable C# code.
    ef7
  2. You will get a generated model.
    ef8

Edit your program.cs

Just my sample code for npgsql_tests_ef database.

About the name of "npgsql_tests_efEntities" class, check your [Model Namespace] entered above. Replace "Model" with "Entities", like it is "npgsql_tests_efModel".

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace testef
{
    class Program
    {
        static void Main(string[] args)
        {
            using (npgsql_tests_efEntities Context = new npgsql_tests_efEntities())
            {
                foreach (Blogs blog in Context.Blogs)
                {
                    Console.WriteLine(blog.BlogId + " " + blog.Name);
                }
            }
        }
    }
}

Sample output:
ef10

@franciscojunior franciscojunior referenced this pull request Jun 24, 2014
Closed

Some fixes #10

@kenjiuno
Contributor

Hi @franciscojunior
It is very helpful. Thank you!

@franciscojunior
Member

Hi, @kenjiuno !

I thank you for all your hard work!
Domo arigato!

@jubilee-scott

I am sure this is probably common knowledge, but since I tripped over this for a day I wanted to save anyone else the grief. When performing the above steps using VS 2012, you will have to download and install Entity Framework 6 Tools for Visual Studio 2012 (http://www.microsoft.com/en-us/download/details.aspx?id=40762). Otherwise the "PostgreSQL Database" option will not show up in the "Change Data Source" dialog even though you can connect to the PostgreSQL server using Tools - Connect To Database menu command.

@kenjiuno
Contributor
kenjiuno commented Oct 5, 2014

Hi, @jubilee-scott

Thanks for the information. I'll add your information as a trouble shooting note!

And there is another note from user's report that rebuilding project helped to resolve the problem.
https://groups.google.com/d/msg/npgsql-help/rulDcydUAhY/qlUpTCDMKaYJ

Thanks!

@abelondev

Can you just provide workable sample with EF6 and Npgsql. And please test on Mono as well. I would really helpful for everybody. I tried all advices possible many hours and nothing helps.

@kenjiuno
Contributor

Hi @abelondev

Are you targeting .NET development on mono environment?

Can you just provide workable sample with EF6 and Npgsql. And please test on Mono as well. I would really helpful for everybody. I tried all advices possible many hours and nothing helps.

Ok, I want to know development situation like: IDE (SharpDevelop?, command line xbuild?), OS (Windows or Linux or etc)
I'll find the corresponding info, or I might write one for you...

DDEX support is intended to be used with Microsoft Visual Studio 2012/2013/2015 Pro, with Microsoft .NET Framework 4.5 and later.

@dropyghost

I wondering what is the right sequence of installing new version of Npgsql.

I had the 2,2 and when try to install new 3.0.5 things stop working. I cant create new project and older projects stop working, I guess something was overwritten?

Im using Visual Studio 2013.

I start here http://www.npgsql.org/install.html

Downloading the package from NuGet.

  • Install-Package Npgsql -Version 3.0.5
  • Install-Package EntityFramework6.Npgsql

Is there a simple way to test if this steps are already working?

Now I want setup the Visual Destign-Time. The main page say try the "experiental installer" (check the typo) but the link is the same page so dont know where that installer is.

When go to "manual installation" but this looks like an older version not sure if work with this new version.

The first instructions say install in the GAC, when the previuos page say you only install Npgsql in the GAC in some cases so is confusing.

Is using the Visual Design one of those cases where you need install in the GAC?

So i go to https://github.com/npgsql/npgsql/releases
and download Npgsql-3.0.5.msi

After install I expect would be updated the machine_config but still the same.

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config

This is where Im now.

image

@kenjiuno
Contributor
kenjiuno commented Jan 8, 2016

Hi @dropyghost

Sorry for inconvenience, I will rewrite about Visual Studio Design-Time support.

I had the 2,2 and when try to install new 3.0.5 things stop working

It needs Setup_NpgsqlDdexProvider.exe for Npgsql 3.0.5. Please be patient while it is preparing, it takes some days.

I had the 2,2 and when try to install new 3.0.5 things stop working. I cant create new project and older projects stop working, I guess something was overwritten?

Sorry for the problem... can you launch Visual Studio?
If you can, please try open menu [Tools]→[Extensions and Updates...], and then you can manually disable or uninstall NpgsqlDdexProvider.
You can see if it recovers the problem on creating new project.

Is using the Visual Design one of those cases where you need install in the GAC?

NpgsqlDdexProvider for Npgsql 3.x won't use GAC for now. But you can leave Npgsql GAC installed.

NpgsqlDdexProvider for Npgsql 2.2 relies on GAC and machine.config modification.
NpgsqlDdexProvider for Npgsql 3.x will modify Visual Studio's host devenv.exe.config and, supply internal Npgsql.dll embedded to NpgsqlDdexProvider.

@dropyghost

Thanks @kenjiuno

In december I try 3.0.4 and got similar result, when saw didnt update the GAC I stop trying and because holiday were already near didnt worry to much in ask what was wrong.

I see 3.0.4 already have a Setup_NpgsqlDdexProvider.exe so what steps should I follow to install it?

When I try I follow the step in december I install something but couldnt find those steps now.

Right now I have NpgsqlDdexProvider. version 3.0.3 installed 01/2015

@kenjiuno
Contributor
kenjiuno commented Jan 9, 2016

Hi @dropyghost

I have uploaded NpgsqlDdexProvider 3.0.5 at https://github.com/npgsql/npgsql/releases.
Please install it. Older version will be overwritten.

Installing Npgsql 3.0.5 into your project (by NuGet) requires NpgsqlDdexProvider 3.0.5 in order to activate Visual Studio Design Time support.

I see 3.0.4 already have a Setup_NpgsqlDdexProvider.exe so what steps should I follow to install it?

When I try I follow the step in december I install something but couldnt find those steps now.

Yes, the instructions are written across some topics like #718 (comment), sorry.

I have just updated official doc. And it will be reliable source against recent NpgsqlDdexProvider releases. http://www.npgsql.org/doc/ddex

@dropyghost

I got until the save connection step.

got this message.

image

My versions looks ok

image

Already rebuild solution.

Update app.config

image

Dont understand the part of "remove invariant" after add "invariant"

I try creating a new project and reinstall the Entity Framework 6 from NuGet, but now say is using an older version

image

@kenjiuno
Contributor

Hi. @dropyghost

Your setup and configuration seem to be ok.

Please check the App.config, <configSections> is located at first like this?

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
  </configSections>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
  </startup>

If <startup> is located at first, please move it.

And, NpgsqlDdexProvider v3.0.5 equips light weight diagnostics feature.

Please try [Check Npgsql project installation] menu item displayed on project's right click.
http://www.npgsql.org/doc/ddex#how-to-check-if-npgsql-ddex-is-working-correctly-npgsql-30x

@dropyghost

This looks like a bug.

When you try to create a connection and the user doesnt have password you get this error.

image

Also try adding

;Password=;

In the ConnectionString and didnt work neither

So I just create a new user with password and work ok.

@kenjiuno
Contributor
kenjiuno commented Apr 5, 2016

@dropyghost Hi, please try this link http://www.npgsql.org/doc/ddex

@dropyghost

@kenjiuno Documentation help link is down again :(

@kenjiuno
Contributor
@therealmitchconnors

@kenjiuno it appears that the http://www.npgsql.org/doc/3.0/ddex.html link is down, and the http://www.npgsql.org/doc/ddex link is out of date (it still refers to a setup.exe file instead of vsix).

@kenjiuno
Contributor

Hi.

This link is correct! But it is old one targeting NpgsqlDdexProvider 3.0 and below.
http://www.npgsql.org/doc/ddex

I have new NpgsqlDdexProvider 3.1 tutorial expanded on this issue:
#1299
I will migrate to official doc in some days.

@therealmitchconnors

Thanks, that did the trick. Not having it in the docs is not great, but maybe you could include a link to the updated instructions in the release notes?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment