-
Notifications
You must be signed in to change notification settings - Fork 69
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
NuGet package for RProvider 1.0.1 broken #38
Comments
This started happening, on some machines, when I switched to referring to RDotNet via the NuGet package. I believe the fundamental issue is that when a type provider has dependencies, the IDE/compiler only look in the same directory as the type provider assembly (and the same directory as the compiler/IDE) for those dependencies. For relatively obvious reasons, it doesn't look in the other NuGet package directories. Once compiled, it would all work OK because all the binaries get copied to the bin/Debug directory, but it never gets that far because the compiler cannot initialize the type provider. Sergey wrote a post-install script for RProvider which copies over the R.Net assemblies, but oddly NuGet seems to pass different values for install directories depending on what machine it runs on. So for some machines it works. Since I published 1.0.1 R.Net has also been updated to v1.5.5.0. So this might look like a version mismatch, but I don't think it is (or at least, it is a version mismatch as well as a dependency problem!) Haven't had time to figure it out yet because of other commitments, but I will ask @tpetricek to do so today! |
This is version mismatch, |
It might be, but on my machine it never gets as far as a version mismatch. fuslogvw shows where it is probing for assemblies and it doesn't look in the R.NET directory so doesn't find the assembly at all. Now, once that is fixed, we might have a version mismatch too. If that is the case, then I don't understand how NuGet package dependencies are ever supposed to work. The nuspec specifies a dependency on R.NET 1.5.4. But since I published the package, R.NET has been updated to R.NET 1.5.5. When you add a NuGet reference to RProvider, it pulls down R.NET 1.5.5. Are you suggesting that whenever a dependency is updated we need to re-publish RProvider? |
NuGet should download version specified in spec. I think that @mathias-brandewinder just manually updated Yes, we need to update and republish |
I didn't do anything manually - just created a library, and added the NuGet package for RProvider from the "Manage NuGet packages" in the solution explorer. |
Right- I get the same thing. Perhaps there is a way of specifying you won't accept newer versions? |
@hmansell, please publish on |
I published and it seems to work for me. I remain concerned that it will break the next time R.NET is updated... I guess we'll find out whenever that happens! |
Looks like it's working on my end as well - which is great, because I am giving a short demo of the type provider at a R user group next week :) |
Looking at the NuGet versioning docs, I think that we might be able to require specific version of R.NET by using square brackets around the number:
Not sure if this has any unfortunate implications - it might cause a compatibility issue if someone needs a different specific version of R.NET for some reason... but I don't think that's too likely. |
Ah, interesting. Also, I have a feeling this only affects us because On Wed, Sep 25, 2013 at 11:39 PM, Tomas Petricek
|
There are one more option that is possible for |
Or @kos59125 could get rid of strong-naming altogether. On Fri, Sep 27, 2013 at 3:45 PM, Sergey Tihon notifications@github.comwrote:
|
Why do you need it signed? Do you have to sign the RProvider too? On Oct 1, 2013, at 2:11 AM, Sergey Tihon notifications@github.com wrote:
|
I use it from SharePoint and need to deploy it into GAC. |
When I install the NuGet package, and add references in a FSI file:
r @"..\packages\R.NET.1.5.5\lib\net40\RDotNet.dll"
r @"..\packages\RDotNet.FSharp.0.1.2.1\lib\net40\RDotNet.FSharp.dll"
r @"..\packages\R.NET.1.5.5\lib\net40\RDotNet.NativeLibrary.dll"
r @"..\packages\RProvider.1.0.1\lib\RProvider.dll"
... the last line shows an error:
"The type provider ... reported an error: Assembly Attribute TypeProviderAssemblyAttribute' refers to a designer assembly 'RProvider' which cannot be loaded or doesn't exist. Could not load file or assembly 'RDotNet, Version=1.5.4.0' ..."
The text was updated successfully, but these errors were encountered: