mrward/monodevelop-nuget-addin

Not possible to add necessary packages when trying to build project with Microsoft.Hadoop.MapReduce

serup opened this issue · 3 comments

serup commented

Somehow the current Nuget is too old version as to what Microsoft.Hadoop.MapReduce dependencies require -- is it possible to update the Nuget package manager to newer version?

What error are you getting? I do not see any NuGet client min version information for that NuGet package so it should work with any NuGet version. The Microsoft.Hadoop.MadReduce .nuspec file is shown below and there is no NuGet version restriction.

<?xml version="1.0"?>
<package xmlns="http://schemas.microsoft.com/packaging/2013/01/nuspec.xsd">
  <metadata>
    <id>Microsoft.Hadoop.MapReduce</id>
    <version>0.12.5807.28193</version>
    <title>Microsoft .NET Map Reduce API For Hadoop</title>
    <authors>Microsoft</authors>
    <owners>Microsoft</owners>
    <projectUrl>http://hadoopsdk.codeplex.com/</projectUrl>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Provides a .NET API for the Map/Reduce functionality of Hadoop Streaming.</description>
    <dependencies>
      <dependency id="Newtonsoft.Json" version="4.5.11" />
    </dependencies>
    <references>
      <group targetFramework=".NETFramework4.0">
        <reference file="Microsoft.Hadoop.Client.dll" />
        <reference file="Microsoft.Hadoop.MapReduce.dll" />
        <reference file="Microsoft.Hadoop.WebClient.dll" />
        <reference file="Microsoft.WindowsAzure.Management.Framework.dll" />
      </group>
    </references>
  </metadata>
</package>

The only problem I can see with that NuGet package is that it has a PowerShell script that sets copy local for the files inside the MRLib. You should be able to do that manually in the Solution window. PowerShell scripts are not supported in the NuGet addin for MonoDevelop/Xamarin Studio.

Write-Host Setting MRLib items CopyToOutputDirectory=true
$project.ProjectItems.Item("MRLib").ProjectItems.Item("Microsoft.Hadoop.Client.dll").Properties.Item("CopyToOutputDirectory").Value = 1;
$project.ProjectItems.Item("MRLib").ProjectItems.Item("Microsoft.Hadoop.CombineDriver.exe").Properties.Item("CopyToOutputDirectory").Value = 1;
$project.ProjectItems.Item("MRLib").ProjectItems.Item("Microsoft.Hadoop.MapDriver.exe").Properties.Item("CopyToOutputDirectory").Value = 1;
$project.ProjectItems.Item("MRLib").ProjectItems.Item("Microsoft.Hadoop.MapReduce.dll").Properties.Item("CopyToOutputDirectory").Value = 1;
$project.ProjectItems.Item("MRLib").ProjectItems.Item("Microsoft.Hadoop.ReduceDriver.exe").Properties.Item("CopyToOutputDirectory").Value = 1;
$project.ProjectItems.Item("MRLib").ProjectItems.Item("Microsoft.WindowsAzure.Management.Framework.Threading.dll").Properties.Item("CopyToOutputDirectory").Value = 1;
$project.ProjectItems.Item("MRLib").ProjectItems.Item("MRRunner.exe").Properties.Item("CopyToOutputDirectory").Value = 1;

I am guessing this is the problem you are running into.

serup commented

Turns out issue was a combination of System.Net.Http NOT set to copy local and a bunch of different packages gone wrong - I managed to get it to work by fiddling around, however I would not be able to tell exactly what I did