dataplat / dbatools

🚀 SQL Server automation and instance migrations have never been safer, faster or freer
https://dbatools.io
MIT License
2.48k stars 806 forks source link

Support for replication commands without SSMS 17 installed #7428

Closed andreasjordan closed 3 years ago

andreasjordan commented 3 years ago

This issue is related to these commands:

All of these commands need the following libraries:

But Replication.dll has dependencies and need Microsoft.SqlServer.Smo.dll with Version=14.0.0.0, but we now ship version 15 with dbatools. Version 14 is only installed if SSMS 17 is installed on the system.

Dbatools is a community driven module and at the time this issue is opened, nobody from the maintainers has the time and the knowledge to fix this.

So I see this as an open room for those who need these commands or would like to use them. Please comment here to get updates on the topic and tell us if you can help with testing new solutions in your environment. And if you have time and knowledge to build such a new solution, please comment here and I can help with code reviews and general guidance.

For more info, see the related issues #6548 and #6897.

wsmelton commented 3 years ago

The likely reason it still requires SSMS 17 is that Microsoft changed how the DLLs are shipped and installed on Windows. SSMS 18+ no longer installs the DLLs for SMO/RMO in the GAC, they are kept in the program folder with the software. So the method we are using to try and load the library won't' work anymore.

Moving all to the latest release of SMO could potentially fix it all and get everything inline. SMO 16 is the latest and greatest (is version SMO docs are pointed at now as well). Likely if and when SSMS 19 comes out we may see a new major version of SMO :shrug:.

potatoqualitee commented 3 years ago

Yeah, i tried this on a computer with zero SQL and it bails. I'm actually considering dbatools.replication and dbatools.ssis with their own sets of extra DLLs and libraries. But until then, I did ask for some updated replication commands https://github.com/microsoft/sqlmanagementobjects/issues/59

Shawn you know any non-NDA date of SSMS 19?

wsmelton commented 3 years ago

Shawn you know any non-NDA date of SSMS 19?

Afraid not. 18.9.2 got released last week, so they may still be doing minor releases. Potential guess would be we may not even see 19.0 until a major release of SQL Server comes out, whenever that may be.

potatoqualitee commented 3 years ago

This is not possible at the moment, however I'm eager to support it and will do so once this issue is resolved: https://github.com/microsoft/sqlmanagementobjects/issues/59

wondisha commented 2 years ago

WARNING: [11:29:28][Get-DbaRepDistributor] All replication commands need SQL Server Management Studio installed and are therefore currently not supported. WARNING: [11:29:28][Get-DbaRepDistributor] Could not load replication libraries

does this mean I have to run being on server where replication is configured?

andreasjordan commented 2 years ago

No, just on an server where SQL Server Management Studio is installed.

wondisha commented 2 years ago

So what are those errors,I did run it on two machines where SSMS is already installed

andreasjordan commented 2 years ago

Which version of SSMS is installed? Let me quote my original statement: "But Replication.dll has dependencies and need Microsoft.SqlServer.Smo.dll with Version=14.0.0.0, but we now ship version 15 with dbatools. Version 14 is only installed if SSMS 17 is installed on the system." So you need SSMS 17 to have the needed dll.

wondisha commented 2 years ago

SSMS 18

andreasjordan commented 2 years ago

So you need to install SSMS 17...