Comments (70)
I have a sample installer script written by NSIS language. It is an installer for Npgsql .NET4.0 & 4.5.
https://gist.github.com/kenjiuno/7985982
The tools (ModifyDbProviderFactories/GACInstall/GACRemove) are external EXEs written by C# .NET 4.0.
The screenshot:
I suggest this as a draft to discuss about installer. Also I can tweak the script to fit current Npgsql.
from npgsql.
That's excellent, Kenji!
Is it too difficult to add support for 2.0 and 3.5 framework versions?
from npgsql.
Thanks.
Is it too difficult to add support for 2.0 and 3.5 framework versions?
Yes No, I'll try it.
I'm curious to know if anyone is trying to place Npgsql into Mono runtime's GAC.
from npgsql.
No, I'll try it.
Thanks!
I'm curious to know if anyone is trying to place Npgsql into Mono runtime's GAC.
I also don't know. I never got those statistics. :(
I think more people use GAC on ms.net because of tools like edmgen etc.
I think on Mono the biggest motivation would be to not have many copies of Npgsql floating around. For example in a web server.
from npgsql.
@kenjiuno, gacinstall exists just as well on mono and with the same syntax (i.e. gacinstall -i ).
If you really want to go all the way, on Windows you can try to see whether there's a standard way to know if/where mono is installed (a registry key maybe??). Then, if so, you can ask the user to choose where to install Npgsql by launching the correct gacutil.exe. I think there may even be multiple mono versions installed side by side.
Of course, if you're on Linux or MacOS everything is different, no exe or anything. But I suggest we concentrate on Windows for now, we can always add a Linux installer later...
from npgsql.
I agree with Shay. I think we should concentrate on windows installer and then we can work on Linux later.
from npgsql.
Ok...
I'll suspend installer to Mono. And I'll stick to Windows MS .NET environment for now.
Add an optional checkbox for the publisher policy as well.
For example, if we have 2.2.2.0 release, redirect 2.2.0.0-2.2.1.0 to 2.2.2.0?
Ok, here is brushed up version:
https://gist.github.com/kenjiuno/7985982
It'll be fit modern UI style by setting XPStyle on. This screenshot uses off (NSIS default).
Skinning is available. Modern UI, or ExperienceUI.
btw nsis compiler will accept external variable input.
makensis.exe /DUSE_UPX /DVERSION=1.337 /DNO_IMAGES myscript.nsi
from npgsql.
Wow, it looks nice :) (especially the ExperienceUI :)
A few comments:
- I In my opinion, this install would only be for installing into the GAC - no need for a "destination folder" step at all. If the user doesn't need GAC installation, then the nuget installation method is the one to use... Allowing the user to install to a directory would encourage them not to use nuget, which offers things like automatic updates etc.
- The policy of the publisher policy file (and its generation process) is probably out of the scope of this issue. In other words, the publisher policy file would be compiled as part of the build server, and the NSIS part would simply pull it inside just like any other DLL.
- Regarding the specific policy (if we do want to discuss it): if we're going for a semver-like scheme with three version numbers, as is standard/recommended, then the third version is supposed to indicate non-breaking bugfixes. It would make sense, then, to specify a policy that redirects all 2.1.x releases to the latest 2.1 version, but not to 2.2.x.
- Look at the warning in this page: http://msdn.microsoft.com/en-us/library/yf1d93sz(v=vs.110).aspx. Microsoft recommends against using gacutil, because it doesn't update reference counting etc. If we want to do this right, can you check what method you're using for the installation?
from npgsql.
Here's some more details on Windows Installer: http://www.codeproject.com/Articles/4352/Demystifying-the-NET-Global-Assembly-Cache. Note:
This is the preferred way for installing such shared assemblies and should be the only way shared assemblies are installed on non development machines
from npgsql.
That's the way to go, Kenji! Excellent work!
Look at the warning in this page: http://msdn.microsoft.com/en-us/library/yf1d93sz(v=vs.110).aspx. Microsoft recommends against using gacutil, because it doesn't update reference counting etc. If we want to do this right, can you check what method you're using for the installation?
Hmmmm, that made me wonder which method the installer should be using to add assemblies to GAC with reference counting... I thought gacutil was the only way to add assemblies to GAC :)
I think I use GAC too little time.
from npgsql.
Here's some more details on Windows Installer: http://www.codeproject.com/Articles/4352/Demystifying-the-NET-Global-Assembly-Cache. Note:
And there is Shay answering me before I even ask... :)
from npgsql.
Hi.
Thanks for reply.
this install would only be for installing into the GAC
Ok, it is more simple!
the publisher policy file would be compiled as part of the build server
I see.
It would make sense, then, to specify a policy that redirects all 2.1.x releases to the latest 2.1 version, but not to 2.2.x.
It is ok. I understood it.
because it doesn't update reference counting etc
Yes, you are right. I have forgotten it until now.
can you check what method you're using for the installation?
I'm using Publish.GacInstall Method
it is well known alternative to gacutil.exe /i.
it will break reference counting easily as you mention.
Hmmmm, that made me wonder which method the installer should be using to add assemblies to GAC with reference counting... I thought gacutil was the only way to add assemblies to GAC :)
Only Windows Installer would have feature for polite GAC installation method... I have not tried yet...
Google gac wix showed me some Windows Installer samples using WiX Toolset.
I'll try WiX Toolset next night. http://wix.codeplex.com/
from npgsql.
Some points I like to test:
- GAC installation of .net 2.0 assembly.
- GAC installation of .net 4.0 assembly.
- Both installation at one once.
- Install Npgsql, then gacutil /u, then launch db application.
- Optional: Install .net 2.0 assembly without .net 2.0 runtime.
- Optional: Install .net 4.0 assembly without .net 4.0 runtime.
- Optional: Install .net 2.0 or 4.0 assembly with no runtime installed.
from npgsql.
I have known .net4.0 app can also use .net2.0 gac.
It is ok: install Npgsql .net2.0/4.0 at once.
It is NG: install Npgsql .net2.0, then install Npgsql .net4.0 by maintenance mode. also vice versa.
Sample windows installer written by WiX Toolset:
NpgsqlSetup.wxs https://gist.github.com/kenjiuno/8039290
Windows installer prevents gac dll from removing.
H:\Dev\Npgsql_files>"C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools\gacutil.exe" /u Npgsql
Microsoft (R) .NET Global Assembly Cache Utility. Version 4.0.30319.33440
Copyright (c) Microsoft Corporation. All rights reserved.
Assembly: Npgsql, Version=2.1.0.0, Culture=neutral, PublicKeyToken=5d8b90d52f46fda7, processorArchitecture=MSIL
Unable to uninstall: assembly is required by one or more applications
Pending references:
SCHEME: <WINDOWS_INSTALLER> ID: <MSI> DESCRIPTION : <Windows Installer>
Number of assemblies uninstalled = 0
Number of failures = 0
Compile:
candle NpgsqlSetup.wxs && light -ext WixUIExtension NpgsqlSetup.wixobj
To install:
msiexec /i NpgsqlSetup.msi
Preselection:
msiexec /i NpgsqlSetup.msi ADDLOCAL=Npgsql45
Uninstall it:
msiexec /passive /x "{772a9e26-9ab8-4011-bce6-d95b19d22b57}"
Screenshot:
from npgsql.
Haven't had time to test yet, but this. Looks great @kenjiuno! WiX seems to be the right solution to this problem.
I will try to spend some time and look at it tomorrow.
from npgsql.
Also, not sure but we should also probably allow optional GAC installation of both EntityFramework DLLs (regular and legacy).
Later there's also the publisher policy as an option, but we can handle that later too :)
from npgsql.
I have updated the installer script. https://gist.github.com/kenjiuno/8039290
It uses package based path like Npgsql2.0.14.3-bin-ms.net2.0 for dll import.
Specify ver by -dVER=2.0.14.3
Use -dEF=0 for 2.0 product line. It doesn't contain independent Entity framework assemblies.
I'll test later...
from npgsql.
@kenjiuno, do you think you'll have some time to look at this task at some point?
from npgsql.
Ok. I'll research about power query, and so on.
from npgsql.
Thanks @kenjiuno!
Am Freitag, 18. Juli 2014 schrieb kenjiuno :
Ok. I'll research about power query, and so on.
—
Reply to this email directly or view it on GitHub
#128 (comment).
from npgsql.
Just random thought...
I thought GAC is dying... and everyone is going NuGet...
from npgsql.
I think some tools still need to find assemblies in the GAC. For example, #271 talks exactly about a tool which uses assemblies from GAC.
from npgsql.
Hi.
I have checked about Power Query. It will need that Npgsql is installed in GAC.
I have installed the following items for testing:
- Office 2013 Professional Plus trial
- Microsoft Power Query for Excel (http://www.microsoft.com/en-US/download/details.aspx?id=39379)
Here is sample usage:
Launch [Excel 2013], [Blank workbook], [POWER QUERY], [From Database], and then [From PostgreSQL Database]
Fill [Server] and [Database]
Query Editor will appear. However it reports Npgsql is absent.
Setup Npgsql and then install it into GAC anyway.
Try again.
It will request to fill Username and Password.
Navigator pane will appear after successful db connection.
Double click the city.
Select [Apply and Close]
If you have Power Map Preview for Excel 2013 (http://www.microsoft.com/en-us/download/details.aspx?id=38395), you will be able to visualize your table data!
from npgsql.
Hi.
Here is my summary of installer for Npgsql.
GAC installation is important if you want to do
- DDEX support in VisualStudio. It is useful to work with EntityFramework Model Editor.
- EdmGen or such.
- Power Query.
My NSIS setup (experimental) will do
- GAC install. And you can remove assembly from GAC manually. It is not locked by anything.
- Auto edit machine.config
My sample Windows installer (experimental) written with WiX toolkit will do
- GAC inst. And you cannot remove assembly by yourself. It is locked by Windows Installer.
- It is not yet done about machine.config modifier.
If someone need need installer, or want to try it urgently, I can build private NSIS setup.
Windows installer version can GAC installation. But you will need to edit machine.config in hand work.
from npgsql.
Hi.
Frankly speaking, which target (framework version) is better for installer?
Npgsql for .net 4.5?
IMAO .net 4.0 and 4.5 versions will satisfy recent needs of Npgsql as an ADO .net data provider.
from npgsql.
I think that by default .net 4.5 would be ideal.
Later I think we could add support for other frameworks according to demand. I think 2.0 would have low demand. I don't know if 3.5 would have a high or low demand.
from npgsql.
Ok.
I'll think about .net 2.0 version later...
Here is an unofficial! Npgsql GAC installer (NSIS version)
Setup_Npgsql-2.2.0-KU20140725-a846e688.exe
https://drive.google.com/file/d/0BzIsP2o582nbdkVOdkhiWFZRcTA/edit?usp=sharing
I will post WindowsInstaller version later...
from npgsql.
Em 25/07/2014 10:00, "kenjiuno" [email protected] escreveu:
Ok.
I'll think about .net 2.0 version later...Here is an unofficial! Npgsql GAC installer (NSIS version)
Setup_Npgsql-2.2.0-KU20140725-a846e688.exe
https://drive.google.com/file/d/0BzIsP2o582nbdkVOdkhiWFZRcTA/edit?usp=sharing
I will post WindowsInstaller version later...
Awesome, Kenji!
I'll make some tests. Then we can add it to our downloads section so other
can give it a try too.
—
Reply to this email directly or view it on GitHub.
from npgsql.
Hello.
Here is an experimental Npgsql/Mono.Security installer (Windows Installer version).
Npgsql-2.2.0.0-KU20140725-a846e688.msi
https://drive.google.com/file/d/0BzIsP2o582nbeHljY1dxMlpvSjQ/edit?usp=sharing
Feature
GAC installer for Npgsql.dll and Mono.Security.dll
They are locked by Windows installer, so you cannot remove them by gacutil /u
Edit machine.config
The installer will add 2 elements into .NET4.0 machine.config (x86 and x64)
<remove invariant="Npgsql"/>
<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"/>
Known issues
machine.config indent issue
I use util:XmlConfig from WiX.
XmlConfig seems to use MSXML.
MSXML seems not to format XML after insertion.
<system.data>
<DbProviderFactories>
<add ... />
<add ... />
...
<remove invariant="Npgsql"/><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"/></DbProviderFactories>
</system.data>
uninstaller won't remove assembly from GAC.
It unlocks assemblies. So you can remove them by gacutil /u
More research time is required...
uninstaller won't edit machine.config.
I have tried 2 ways, but there is no good result for now.
- let util:XmlConfig manage its created element.
- add remove element by util:XmlConfig on uninstaller.
We may need to consider other tool to tweak machine.config.
Installer source code
You can check the installer code from my branch.
https://github.com/kenjiuno/Npgsql/tree/master-setup
Notice: I will rebase the branch, when Npgsql is updated.
from npgsql.
@kenjiuno, this looks like really great work. I prefer the Windows Installer approach, where the DLL is locked in the GAC until you uninstall the Npgsql package.
Is it required (or standard) for the installer to manage the machine.config? Can this be left to the user, who may wish to do it only in the project App.config and not in the machine.config? I don't know much about this...
I'll try to find the time to review soon...
from npgsql.
That's simply awesome, Kenji!
Regarding the machine.config handling, I noticed you already have some custom code to change machine.config file. Can you explain better which problem you are facing when trying to edit machine.config during uninstall?
@roji , I think it is good to have machine.config handling capabilities in the installer as users would want a complete install giving that some tools require this configuration. I think this modification should be an option in the installer (enabled by default). As Kenji Uno installer already does.
from npgsql.
Will it be possible to release the installer with version 2.2.0?
Also, I think the description for Npgsql.EntityFramework and maybe also Npgsql in nuget should contain a link to an information page how to setup the DDEX provider (since I think most users are lost if they don't install it, at least for EF users that don't use Code First).
from npgsql.
Hi Emil!
I will prepare 2.2.0 setup!
DDEX thing is a little bit confused.
It is intended to be used by developer. And it needs GAC installation of Npgsql for now.
NuGet version of Npgsql realizes install-less distribution for end user. GAC installation isn't needed for most cases against NuGet enabled development.
from npgsql.
Hmm, is ddex and model designer possible by installing it from nuget? I thought GAC installation was needed + machine.config change.
from npgsql.
The thing I'm worried about is users doing this:
"I want Npgsql with EF. Cool, I can install it via nuget in Visual Studio. There, now installed... Hey! I don't see PostgreSQL as an option when choosing database type in the model designer??"
Therefore, it would be good with a link in the nuget description how to set it up.
from npgsql.
@Emill, I think you're right that we need to explain things better to users - exactly when they need the DDEX provider and when they don't. We can update the nuget description for the EF packages (there are two), and also the manual.
But there is another issue - looking at our build server, I see that a ZIP is being prepared for the DDEX provider, containing the VSIX and also a DLL and a PDB. Is this the way we want to distribute everything? Does the VSIX already install npgsql into the GAC, or is this a separate step?
We probably want:
- The EXE installer which installs npgsql into the GAC and updates the machine.config (no Visual Studio integration).
- The VSIX, which ideally does the GAC installation step above if needed, this way it's a one-click install which does everything.
I can do the proper config in our build server to make everything build properly, I just need to know what to do.
Thoughts?
Also, it doesn't seem like we should wait to complete this for 2.2.0... We can work on this for 2.2.1?
from npgsql.
Also, I think the description for Npgsql.EntityFramework and maybe also Npgsql in nuget should contain a link to an information page how to setup the DDEX provider (since I think most users are lost if they don't install it, at least for EF users that don't use Code First).
Agreed!
Hmm, is ddex and model designer possible by installing it from nuget? I thought GAC installation was needed + machine.config change.
Yes, GAC and machine.config changes are needed. Currently the nuget package doesn't do anything about that.
The thing I'm worried about is users doing this:
"I want Npgsql with EF. Cool, I can install it via nuget in Visual Studio. There, now installed... Hey! I don't see PostgreSQL as an option when choosing database type in the model designer??"
I think this is really happening.
Therefore, it would be good with a link in the nuget description how to set it up.
Sure!
+1
But there is another issue - looking at our build server, I see that a ZIP is being prepared for the DDEX provider, containing the VSIX and also a DLL and a PDB. Is this the way we want to distribute everything?
I also noticed those files in the zip. But I thought they were needed in order for the .vsix package to install.
Also, regarding the DDEX provider, we aren't building the package for vs2010. @roji , do you think it would be possible to create another buildtype which would use the 2010 project so we could build the package for vs2010? You don't need to create all the buildtypes using the 2010 project. I think just one which creates the vsix project is enough. Thanks in advance.
Does the VSIX already install npgsql into the GAC, or is this a separate step?
From @kenjiuno tutorial, the vsix packages doesn't install Npgsql into the GAC. It is a separate step.
We probably want:
- The EXE installer which installs npgsql into the GAC and updates the machine.config (no Visual Studio integration).
- The VSIX, which ideally does the GAC installation step above if needed, this way it's a one-click install which does everything.
I think we could add the vsix installation as an option in the exe installer. I don't know how much flexibility we have to add other steps in the vsix package to make it add Npgsql into GAC though.
We can modify the exe installer all we want. Thus, we just need to finish the installer and it would take care of everything. What do you all think?
from npgsql.
Hi.
Will it be possible to release the installer with version 2.2.0?
Here is setup built for recent release npgsql:8f70c8b7
https://drive.google.com/folderview?id=0BzIsP2o582nbQmt4N1g1dUZ6M1E&usp=sharing
Both msi and exe(nsis) setup files are available.
Note: msi uninstaller won't remove GAC Npgsql.dll. But you can
uninstall by invoking "gacutil /u".
Hmm, is ddex and model designer possible by installing it from nuget? I thought GAC installation was needed + machine.config change.
You are right, it still requires invocation of administration
privileges for installation.
I will research the possibility of VisualStudio+Npgsql+DDEX (without
admin priv) by NuGet distribution technology.
I think we could add the vsix installation as an option in the exe installer. I don't know how much flexibility we have to add other steps in the vsix package to make it add Npgsql into GAC though.
Ok, I will prepare a setup for that purpose. I think that's a sound choice.
2014-08-26 1:42 GMT+09:00 Francisco Figueiredo Jr. [email protected]:
Also, I think the description for Npgsql.EntityFramework and maybe also
Npgsql in nuget should contain a link to an information page how to setup
the DDEX provider (since I think most users are lost if they don't install
it, at least for EF users that don't use Code First).Agreed!
Hmm, is ddex and model designer possible by installing it from nuget? I
thought GAC installation was needed + machine.config change.Yes, GAC and machine.config changes are needed. Currently the nuget package
doesn't do anything about that.The thing I'm worried about is users doing this:
"I want Npgsql with EF. Cool, I can install it via nuget in Visual Studio.
There, now installed... Hey! I don't see PostgreSQL as an option when
choosing database type in the model designer??"I think this is really happening.
Therefore, it would be good with a link in the nuget description how to set
it up.Sure!
+1But there is another issue - looking at our build server, I see that a ZIP
is being prepared for the DDEX provider, containing the VSIX and also a DLL
and a PDB. Is this the way we want to distribute everything?I also noticed those files in the zip. But I thought they were needed in
order for the .vsix package to install.Also, regarding the DDEX provider, we aren't building the package for
vs2010. @roji , do you think it would be possible to create another
buildtype which would use the 2010 project so we could build the package for
vs2010? You don't need to create all the buildtypes using the 2010 project.
I think just one which creates the vsix project is enough. Thanks in
advance.Does the VSIX already install npgsql into the GAC, or is this a separate
step?From @kenjiuno tutorial, the vsix packages doesn't install Npgsql into the
GAC. It is a separate step.We probably want:
The EXE installer which installs npgsql into the GAC and updates the
machine.config (no Visual Studio integration).
The VSIX, which ideally does the GAC installation step above if needed, this
way it's a one-click install which does everything.I think we could add the vsix installation as an option in the exe
installer. I don't know how much flexibility we have to add other steps in
the vsix package to make it add Npgsql into GAC though.We can modify the exe installer all we want. Thus, we just need to finish
the installer and it would take care of everything. What do you all think?—
Reply to this email directly or view it on GitHub.
from npgsql.
Ok, this is the nsis setup for testing: Npgsql(into
GAC)+machine.config editor+DDEX vsix(Vs2012/Vs2013).
Setup_Npgsql-2.2.0.0-KU20140827-8f70c8b7.exe
https://drive.google.com/file/d/0BzIsP2o582nbbW5OZ2lPc2tGbVE/edit?usp=sharing
I have tested on both Win8.1(jp) and Win2012R2(en-us). It worked well
in stress less.
2014-08-26 22:10 GMT+09:00 Kenzi U [email protected]:
Hi.
Will it be possible to release the installer with version 2.2.0?
Here is setup built for recent release npgsql:8f70c8b7
https://drive.google.com/folderview?id=0BzIsP2o582nbQmt4N1g1dUZ6M1E&usp=sharingBoth msi and exe(nsis) setup files are available.
Note: msi uninstaller won't remove GAC Npgsql.dll. But you can
uninstall by invoking "gacutil /u".Hmm, is ddex and model designer possible by installing it from nuget? I thought GAC installation was needed + machine.config change.
You are right, it still requires invocation of administration
privileges for installation.
I will research the possibility of VisualStudio+Npgsql+DDEX (without
admin priv) by NuGet distribution technology.I think we could add the vsix installation as an option in the exe installer. I don't know how much flexibility we have to add other steps in the vsix package to make it add Npgsql into GAC though.
Ok, I will prepare a setup for that purpose. I think that's a sound choice.2014-08-26 1:42 GMT+09:00 Francisco Figueiredo Jr. [email protected]:
Also, I think the description for Npgsql.EntityFramework and maybe also
Npgsql in nuget should contain a link to an information page how to setup
the DDEX provider (since I think most users are lost if they don't install
it, at least for EF users that don't use Code First).Agreed!
Hmm, is ddex and model designer possible by installing it from nuget? I
thought GAC installation was needed + machine.config change.Yes, GAC and machine.config changes are needed. Currently the nuget package
doesn't do anything about that.The thing I'm worried about is users doing this:
"I want Npgsql with EF. Cool, I can install it via nuget in Visual Studio.
There, now installed... Hey! I don't see PostgreSQL as an option when
choosing database type in the model designer??"I think this is really happening.
Therefore, it would be good with a link in the nuget description how to set
it up.Sure!
+1But there is another issue - looking at our build server, I see that a ZIP
is being prepared for the DDEX provider, containing the VSIX and also a DLL
and a PDB. Is this the way we want to distribute everything?I also noticed those files in the zip. But I thought they were needed in
order for the .vsix package to install.Also, regarding the DDEX provider, we aren't building the package for
vs2010. @roji , do you think it would be possible to create another
buildtype which would use the 2010 project so we could build the package for
vs2010? You don't need to create all the buildtypes using the 2010 project.
I think just one which creates the vsix project is enough. Thanks in
advance.Does the VSIX already install npgsql into the GAC, or is this a separate
step?From @kenjiuno tutorial, the vsix packages doesn't install Npgsql into the
GAC. It is a separate step.We probably want:
The EXE installer which installs npgsql into the GAC and updates the
machine.config (no Visual Studio integration).
The VSIX, which ideally does the GAC installation step above if needed, this
way it's a one-click install which does everything.I think we could add the vsix installation as an option in the exe
installer. I don't know how much flexibility we have to add other steps in
the vsix package to make it add Npgsql into GAC though.We can modify the exe installer all we want. Thus, we just need to finish
the installer and it would take care of everything. What do you all think?—
Reply to this email directly or view it on GitHub.
from npgsql.
Excellent, @kenjiuno !
I'll test it here and will let you know if I find any problem.
from npgsql.
I just tested your installer and it is very good!
Some comments:
- Would it be possible to add the ddex installer for vs2010 too? This way I can test the vsix installer in vs2010.
- I don't know very much about the Null Soft Installer, but do you think it would be possible to create an entry in the windows uninstall section?
- When I run the installer for the second time, to test the uninstall procedure, I noticed that it didn't know Npgsql was already installed. Would it be possible to make the installer know that it installed Npgsql in a previous run?
- When the uninstall finished, I noticed that it commented out the dbprovider entry of Npgsql. I think it would be better to remove it instead of commenting.
- Other than that, I think this installer is very good!
My comments are only details which wouldn't avoid the installer utilization.
from npgsql.
Guys, let me know when you think you have a finished version, and if possible let me know what are the steps to create the EXE, I'll set it up at the build server.
from npgsql.
Hi, @kenjiuno !
I just released the final version of Npgsql 2.2.0. Do you think it would be possible to release a version of your installer using this release? I'll add it to our downloads page in github and pgfoundry so people can test it and give us feedback.
After that, as @roji said, we need to finish the installer and integrate the code into the codebase so we can have the build server create the installers for us. :)
from npgsql.
Hi, sorry for blank!
I was busy for some days.
I just released the final version of Npgsql 2.2.0. Do you think it would be possible to release a version of your installer using this release?
Yes, now I have done! And I have improved some points listed below.
Setup_Npgsql-2.2.0.0-Final-Release.exe
https://drive.google.com/file/d/0BzIsP2o582nbTGM0X1FWaW50OEU/edit?usp=sharing
Since Aug 27:
- plus VS2010 ddex (from my build)
- plus uninstaller
- remove dbprovider instead of commenting on uninstall.
- with ExperienceUI
- files updated from official Npgsql-2.2.0-net45.zip, NpgsqlDdexProvider-2.2.0-VS2013.zip
Issues for now:
- NSIS's silent installer option "/S" doesn't link to vsix installer/uninstaller options.
- Uninstaller doesn't show component descriptions due to experienceUI's problem.
Source: installer/Setup_Npgsql.nsi
kenjiuno/Npgsql@d27b733
from npgsql.
Excellent, @kenjiuno !
I'll test it and will let you know if I find anything.
If everything is ok, I think we can put this installer in our downloads section so others can use it and give us feedback about it.
from npgsql.
I just installed and used it with ServiceStack.ORMLite T4 and it worked perfectly. Thank you!
from npgsql.
Thanks for your feedback, @stephenpatten !
I'll add it to our downloads section.
from npgsql.
Now when the installer is done, I think https://github.com/npgsql/Npgsql/wiki/Visual-Studio-Design-Time-Support---DDEX-Provider should be updated.
The sections about how to build and debug the ddex extension and how to edit machine.config can be removed (or moved to another page). Instead, there should be a section where to download the new installer together with instructions that all components in the installer should be selected.
The section about "Add references to Npgsql and Npgsql.EntityFramework" should be changed to install from nuget.
from npgsql.
We also need to have the EXE build on the build server. @kenjiuno, if you send me the build instructions I'll make sure to set it all up.
from npgsql.
Hi @roji!
The installer is saved at branch master-setup-0902 of https://github.com/kenjiuno/Npgsql.git
installer folder stores:
- A NSIS script: Setup_Npgsql.nsi
- A WiX script: NpgsqlSetup.wxs
- 2 tools for GAC: GACInstall and GACRemove
- A tool for machine.config: ModifyDbProviderFactories
- Some batch files for my private build.
Build server needs some installations:
- Get NSIS 2.46 and install it. http://nsis.sourceforge.net/Download
- Get experienceui-1.3.1.exe and install it. http://nsis.sourceforge.net/ExperienceUI
Build tools with msbuild :
- installer/GACInstall/GACInstall.sln
- installer/GACRemove/GACRemove.sln
- installer/ModifyDbProviderFactories/ModifyDbProviderFactories.sln
msbuild /p:Configuration=Debug-net40 installer/GACInstall/GACInstall.sln
msbuild /p:Configuration=Debug-net40 installer/GACRemove/GACRemove.sln
msbuild /p:Configuration=Debug-net40 installer/ModifyDbProviderFactories/ModifyDbProviderFactories.sln
NSIS compiler command line:
"C:\Program Files (x86)\NSIS\makensis.exe" Setup_Npgsql.nsi
Input files (working folder is installer):
bin\Debug-net40\GACInstall.*
bin\Debug-net40\GACRemove.*
bin\Debug-net40\ModifyDbProviderFactories.*
Npgsql-${VER}-net45\*.dll
Npgsql-${VER}-net45\NpgsqlDdexProvider.vsix
Npgsql-${VER}-net40\NpgsqlDdexProvider.vsix
${VER} = 2.2.0.0
Please let me know if it needs any tweaks!
Thanks.
from npgsql.
Hi!
If you don't mind, I will write an automated setup builder project for msbuild, and then send a pull request.
from npgsql.
@kenjiuno, that would be great - this way the EXE would be produced as part of the build... thanks!
from npgsql.
Hi.
I have built setup for 2.2.1
Setup_Npgsql-2.2.1.0.exe
https://drive.google.com/file/d/0BzIsP2o582nbSlhtRGNkdmUzcGs/view?usp=sharing
It can be built by msbuild.
The setup for Npgsql 2.2.x is located at another branch Branch_v2.2.1_with_setup (kenjiuno/Npgsql@6973e08) because of Mono.Security.dll instead of Common.Logging introduced to Npgsql 3.
from npgsql.
Excellent, @kenjiuno !
I'll add it to our downloads page.
Did you see this issue: #383 ? The user says that when using the .net 4.0 dll, visual studio complaints that it was compiled with .net 4.5. I'll make some tests to check what is happening.
from npgsql.
@kenjiuno , I just open the installer file and inside the Npgsql-2.2.1.0-net40 folder, there is only the NpgsqlDdexProvider.vsix, while in the Npgsql-2.2.1.0-net45 folder, there is the ddex and Npgsql.dll as well. Is this expected? I think there should be a Npgsql.dll file inside the *-net40 folder.
from npgsql.
*-net40 contains ddex for VS2010.
*-net45 contains ddex for VS2012/VS2013.
VS2014 CTP may need another vsix package for ddex.
I think there should be a Npgsql.dll file inside the *-net40 folder.
Ok, I will modify installer to contain net40 version too!
Did you see this issue: #383 ? The user says that when using the .net 4.0 dll, visual studio complaints that it was compiled with .net 4.5. I'll make some tests to check what is happening.
Yes, I have checked it. It is complex problem to be solved for now.
GAC will feed only one Npgsql.dll regardless of the .net framework version (4.0 or 4.5)
So, user or developer need to remove Npgsql.dll from GAC for instance, or try Npgsql which has another assembly version. This annoys end user...
from npgsql.
Em sexta-feira, 17 de outubro de 2014, kenjiuno [email protected]
escreveu:
Hi @franciscojunior https://github.com/franciscojunior
*-net40 contains ddex for VS2010.
*-net45 contains ddex for VS2012/VS2013.VS2014 CTP may need another vsix package for ddex.
I think there should be a Npgsql.dll file inside the *-net40 folder.
Ok, I will modify installer to contain net40 version too!
Ahhh, now I remember... The installer had only support for net45. I forgot
about that and didn't add a proper message about that. Sorry for that,
Kenji.
And thank you for having a look at net40 support. If it is too much
complicated to add two versions in the same installer, I think we can
create two separated installers: one for net40 and another for net45.
Did you see this issue: #383 #383
? The user says that when using the .net 4.0 dll, visual studio complaints
that it was compiled with .net 4.5. I'll make some tests to check what is
happening.Yes, I have checked it. It is complex problem to be solved for now.
GAC will feed only one Npgsql.dll regardless of the .net framework version
(4.0 or 4.5)So, user or developer need to remove Npgsql.dll from GAC for instance, or
try Npgsql which has another assembly version. This annoys end user...
I wasn't aware of that. Thanks for the heads up, Kenji!
This is really annoying. I think we have to add that information to our
documentation so users know what to do when this issue happens.
Thanks for your comments and explanations, @kenji!
—
Reply to this email directly or view it on GitHub
#128 (comment).
Regards,
Francisco Figueiredo Jr.
Npgsql Lead Developer
http://www.npgsql.org
http://gplus.to/franciscojunior
http://fxjr.blogspot.com
http://twitter.com/franciscojunior
from npgsql.
Hi.
And thank you for having a look at net40 support. If it is too much
complicated to add two versions in the same installer, I think we can
create two separated installers: one for net40 and another for net45.
It can be done, net40/net45 in same installer.
I will code the installer to use internal MSBuild task.
It is already done for ddex 2010 compilation.
<!-- Call internal MSBuild to prepare NpgsqlDdexProvider2010 binary. for Vs2010/2012/2013 -->
<MSBuild Projects="..\NpgsqlDdexProvider\NpgsqlDdexProvider2010.csproj"
Properties="Configuration=Release-net40"
Targets="Build" />
It is useful to build multiple configurations (net40/net45) in one solution build session.
So, I want to build the following 2 configurations in one build session. And may I use it inside the installer.csproj?
- Npgsql Release-net40
- Npgsql Release-net45
from npgsql.
Hi.
I have updated setup programs.
Setup_Npgsql-2.2.3.0-net45.exe
https://drive.google.com/file/d/0BzIsP2o582nbZ21TTDhjZWFjSGM/view?usp=sharing
Setup_Npgsql-2.2.3.0-net40.exe
https://drive.google.com/file/d/0BzIsP2o582nbcnZjdWRHRkVvd1E/view?usp=sharing
I hope setups will be uploaded at its release:
https://github.com/npgsql/npgsql/releases/tag/v2.2.3
from npgsql.
I hope setups will be uploaded at its release:
https://github.com/npgsql/npgsql/releases/tag/v2.2.3
Done!
Thank you very much, @kenjiuno!
from npgsql.
I just installed and got same error on both Npgsql 2.2.2.0 and Npgsql 2.2.3.0 setup.
from npgsql.
Once is installed, what are the steps to connect with the postgres db and create the model?
nevermind i found the tutorial
https://github.com/npgsql/npgsql/wiki/Visual-Studio-Design-Time-Support---DDEX-Provider
from npgsql.
Hi @dropyghost
Thank you for trying it!
Feel free to contact us if you have any problems.
thanks
kenji uno
from npgsql.
I have noticed that current Setup doesn't contain Npgsql.EntityFrameworkLegacy!
So, you may see the following message, when you open the ADO.NET Entity Data Model Designer for an edmx file connected to PostgreSQL via Npgsql ddex:
Cannot load 'xxx.edmx': Could not load Npgsql.EntityFrameworkLegacy assembly, is it installed?
I'll fix this in next setup release.
from npgsql.
Hi.
I have updated setup programs. It includes fix for #422 and includes Npgsql.EntityFrameworkLegacy.
Setup_Npgsql-2.2.3.0-r2-net40.exe
https://drive.google.com/file/d/0BzIsP2o582nbUXpmZHl0SWVQMkk/view?usp=sharing
Setup_Npgsql-2.2.3.0-r2-net45.exe
https://drive.google.com/file/d/0BzIsP2o582nbYURXODlzbUx4SjA/view?usp=sharing
I will post a pull request for fix #422
from npgsql.
Excellent, @kenjiuno !
I just updated the installers in our downloads section.
Thank you very much for your work on this! You rock!
from npgsql.
Closed as we already have an installer
from npgsql.
Hello. I'm really sorry if this is a "dumb question", but where can I find *.exe installers for npgsql 3.X.X?
from npgsql.
Hi.
Npgsql 3.x setup is not officially released yet, and won't be released.
Try NuGet to obtain official packages: Npgsql
, EntityFramework6.Npgsql
and such.
If you need for EntityDataModel wizard of VisualStudio, you can try my VSIX installer:
https://github.com/kenjiuno/Npgsql/releases
This kind of discussion will move to newer topic: #718
from npgsql.
@kenjiuno thank you very much, that's exactly why I needed the exe installers.
from npgsql.
Related Issues (20)
- Potential buffer over-read (yielding exception) when reading arrays with ArrayNullabilityMode.PerInstance
- Question about RETURNING statements when using INSERT with multiple values HOT 8
- Support direct ssl with PG17
- Question: 8.0.3 release timeline HOT 1
- Type resolver for mapping JSONB column to object HOT 6
- Custom keys in connection string HOT 5
- Connection pooling does not work for NpgsqlDataSource.CreateConnection() or NpgsqlDataSource.OpenConnection() HOT 4
- Unnecessary escalation to prepared transactions HOT 13
- Remove SCM credential message and auth type
- Setting UnknownResultTypeList sometimes destabilizes connection. HOT 11
- TransactionScope, SET CONSTRAINTS all DEFERRED, COPY, foreign key evaluation issue HOT 11
- Integrate `ReplicationConnection` with `NpgsqlDataSource` HOT 2
- Returning multiple cursors HOT 6
- Is it possible to preprocess parameters before executing a command HOT 4
- Support PG17 interval infinity
- Schema lookup on temp tables HOT 2
- All pre-8.0.3 version NuGet packages are shown as vulnerable whereas more versions are listed as patched on the Security issue HOT 5
- Incorrect NuGet packages marked as vulnerable HOT 1
- TypeLoadException : v8 make crashed tests in GitHub Actions HOT 4
- How to pass array of user defined type in Npgsql? HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from npgsql.