Closed ooglek closed 5 years ago
Are you looking for a Windows release? If so, that probably won't happen unless someone with better Windows experience than I can rebuild this. If not, keep in mind you can always build from HEAD and get what would be in 1.6.3. I'll try to do a release when I get some time free.
Is it possible to include a .NET Core target in the next release?
Is this project actively maintained? I'm trying to add Librets library in .Net Core project, I have tried all these 3 packages in nuget and none of them worked https://www.nuget.org/packages?q=librets it says current library is unsupported or I get "The type initializer for 'librets.libretsPINVOKE' threw an exception." I'm working on a project to connect to MLS from Amazon AWS over Lambda and can't use current Librets libraries. Is there source code for .NET ?
It is only being maintained by individual contributors these days. And it is not at .NET application ... it is Linux based, but uses a wrapper to mostly make it work on Windows. That said ... there is someone with updates to the Windows version that we're trying to get merged.
@abidCharlotte49er You must copy \libRETS-x64\1.6.2\lib\native\librets-pinvoke.dll
to your application folder. Because the NuGet package is a wrapped native library, you're restricted to running in Windows.
I stopped using it this weekend in fact. It was easy enough to re-implement directly in C# with HttpClient
, SocketsHttpHandler
, and an XML parser.
@kjaleshire @jazzklein Thank you both for your advice, honestly didn't expect you anyone would respond so quickly. Really appreciate you guys taking time and responding. I have added librets-pinvoke.dll in my application and I could now get RetsSession, hopefully this is all I need to do to make this work.
On a side note I see someone posted beta1 last night but there is no release notes. I wonder what's in it ?
Ran into another problem. AWS ignores pinvoke.dll. I tried adding that library as reference. I get "Invalid or unsupported" error. I can manually copy that file in my project but AWS ignores this file since it is not added in the project files. I have added below item in the csproj and that didn't help either. Why can't pinvoke part of the Nuget package? Any other workaround to add this library as part of project file ?
`
`
also tried creating my own nuget package and added it to the project that way. I see pinvoke.dll is being sent in the AWS zip but error still remains.
Sorry, I'm not a Windows guy and maybe one of them will speak up. But, I do remember that there were somethings about security issues surrounding signed objects in the cache
if that means anything to you. You may need to self sign things if your target machine is running at a higher security level. Hope that helps. Otherwise, you'll need to wait for a Windows guy to respond.
The v1.6.3-beta1 NuGet package includes the updates created by @jbramleycl in PR #72. I am not sure how/when an official 1.6.3 release would be created so I named it 1.6.3 to increase the NuGet package version. I have started work on a .NET Standard version of a RETS library but it's been slow going. Maybe @kjaleshire has the best approach for .NET Core support.
Thanks Brian, Please keep us, Windows guys posted when we have an update on that.
1.6.3 Released.
What I have is nowhere a complete implementation. It's only able to login, do resource searches, and de-serialize the results back. But if this interests anyone I'm fine spending some time extracting what I have and open-sourcing it.
Mark,
Is there a complete release notes for 1.6.3 ?
Kyle,
Can you please send what you have ? I’ll review and see if I can contribute.
Thanks
Unfortunately, the release notes are not complete as there were a bunch of pull requests over the past few years that didn't include updates. You're best bet is to review the git log.
Sure, I'll try to find some time this weekend to post it and let you know.
@abidCharlotte49er I've posted my client code at https://github.com/kjaleshire/RetsExchange. It's not well-organized or packaged because I'm not familiar with those aspects but feel free to do so.
@kjaleshire Thank You I will review when I get a chance. I manged to host my .NET Core application on windows server working with LibRETS 1.6.3 release. I had to add references manually. It won't work when I install LibRets from Nuget PM. I also have to change something in the build properties to work. Adding those screenshots for .NET developers for reference. Thanks
@abidCharlotte49er can you share what the csproj file look like?
I'm running into the same problem and it's causing me a world of pain right now. I have added these properties to the csproj file but still get the same errors.
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
and
<ItemGroup>
<Reference Include="external\librets-pinvoke.dll"/>
<Reference Include="external\librets-dotnet.dll" />
</ItemGroup>
I removed the nuget package and referenced them manually and I still get
An exception of type 'System.TypeInitializationException' occurred in librets-dotnet.dll but was not handled in user code: 'The type initializer for 'librets.libretsPINVOKE' threw an exception.' Inner exceptions found, see $exception in variables window for more details. Innermost exception System.DllNotFoundException : Unable to load shared library 'librets-pinvoke.dll' or one of its dependencies. In order to help diagnose loading problems, consider setting the DYLD_PRINT_LIBRARIES environment variable: dlopen(liblibrets-pinvoke.dll, 1): image not found at librets.libretsPINVOKE.SWIGExceptionHelper.SWIGRegisterExceptionCallbacks_librets(ExceptionDelegate applicationDelegate, ExceptionDelegate arithmeticDelegate, ExceptionDelegate divideByZeroDelegate, ExceptionDelegate indexOutOfRangeDelegate, ExceptionDelegate invalidCastDelegate, ExceptionDelegate invalidOperationDelegate, ExceptionDelegate ioDelegate, ExceptionDelegate nullReferenceDelegate, ExceptionDelegate outOfMemoryDelegate, ExceptionDelegate overflowDelegate, ExceptionDelegate systemExceptionDelegate) at librets.libretsPINVOKE.SWIGExceptionHelper..cctor()
Building the project throws this warning in the terminal
warning MSB3246: Resolved file has a bad image, no metadata, or is otherwise inaccessible
Here you go. It has been a while so I documented what I did back then so that it will be helpful to others. Please note our project is DotNet Core.
@abidCharlotte49er, Do you happen to have the working dlls for both librets-net and librets-pinvoke. I am using .net core and followed the same suggestions as you stated , but I am getting this error: {"The type initializer for 'librets.libretsPINVOKE' threw an exception."} We were using older version of librets so far and looks like somethings changed by our RETS provider, it could be related to the TLS 1.2 support. I appreciate if anyone else has run into this problem and have fixed it, to give some leads. Thanks in advance
Here you go try these. Make sure you drop the PINVOKE file in appropriate place. You can't add reference to that file so you need to manually drop it in the appropriate folder. see session.SetModeFlags(RetsSession.MODE_NO_SSL_VERIFY)
RetsSession session = new RetsSession(mlsVendor.RETSUrl); session.SetUserAgent(mlsVendor.Useragent); if (!string.IsNullOrEmpty(mlsVendor.UseragentPassword)) session.SetUserAgentPassword(mlsVendor.UseragentPassword);//This is required for some session.SetRetsVersion(RetsVersion.RETS_1_7_2); session.SetModeFlags(RetsSession.MODE_NO_SSL_VERIFY); session.Login(mlsVendor.Username, mlsVendor.Password);
Really appreciate your response. Thanks a Mil !!
On Tue, Jul 14, 2020 at 12:31 PM abidCharlotte49er notifications@github.com wrote:
Here you go try these. Make sure you drop the PINVOKE file in appropriate place. You can't add reference to that file so you need to manually drop it in the appropriate folder. Also see NO_SSL_VERIFY flag
RetsSession session = new RetsSession(mlsVendor.RETSUrl); session.SetUserAgent(mlsVendor.Useragent); if (!string.IsNullOrEmpty(mlsVendor.UseragentPassword)) session.SetUserAgentPassword(mlsVendor.UseragentPassword);//This is required for some session.SetRetsVersion(RetsVersion.RETS_1_7_2); session.SetModeFlags(RetsSession.MODE_NO_SSL_VERIFY); session.Login(mlsVendor.Username, mlsVendor.Password);
librets-dotnet.zip https://github.com/NationalAssociationOfRealtors/libRETS/files/4919972/librets-dotnet.zip
— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/NationalAssociationOfRealtors/libRETS/issues/67#issuecomment-658281994, or unsubscribe https://github.com/notifications/unsubscribe-auth/ANFZZWXIDHYPNMIP2Z2JKDLR3SB7NANCNFSM4FS4GZZQ .
It looks like the
NEWS
was updated over a year ago with improvements such as 1.8 GetObject improvements.Any chance a new release is forthcoming?
Also, the
README.md
for this project seems to have gotten updated with somelibRETS Docker
info, which seems strange and wrong.