2

I have an application that I am trying to use JSIL on. In an attempt to do that, I've done the following:

  1. Downloaded the code using the following command-line command:git clone --recursive https://github.com/sq/JSIL.git
  2. Opened JSIL.sln in Visual Studio Premium 2013
  3. Rebuilt the entire solution.

When I do this, I get over 1200 errors. They all seem related to missing references. The bulk of them seem to be:

  • The type or namespace name 'Mono' could not be found
  • The type or namespace name 'ICSharpCode' could not be found
  • The type or namespace name 'TypeSystem' could not be found
  • The type or namespace name 'MethodReference' could not be found
  • 'JSIL.Transforms.DecomposeMutationOperators.TypeSystem' is a 'field' but is used like a 'type'
  • The type or namespace name 'FieldReference' could not be found

Does anyone know what I'm missing / doing wrong? This seems like it would be a powerful tool (if it works right). I'd really like to give it a shot.

Thank you for any insights.

user3111277
  • 2,237
  • 3
  • 17
  • 19

2 Answers2

3

You need to pull the git submodules as described in the instructions on the webpage.

i.e.

git submodule update --init --recursive

If you looked closer at the compilation errors you would see that the compilation is failing because you are missing project files (and the project files are provided by the submodules).

Pulling in NuGet packages will not fix this because JSIL relies on specific versions of Mono.Cecil and ILSpy; the trunk versions will not work.

Katelyn Gadd
  • 1,383
  • 9
  • 13
  • One can use NuGet to extract specific versions. See [Download old version of package with NuGet](http://stackoverflow.com/questions/5628689/download-old-version-of-package-with-nuget) – ΩmegaMan Feb 26 '14 at 15:00
0

If the creators of the project used NuGet the package manager, these references should be easy to resolve.

First on your side in Visual Studio, go to the file menu

  1. Tools -> Options -> Package Manager
  2. Check Allow NuGet to download missing packages and apply.
  3. Do full rebuild.

If that doesn't fix (or fix all) missing references, use the Nuget Packet manager...

  1. Tools -> Library Package Manager -> Manage NuGet Packages for Solution
  2. Select Online and search for each missing reference by typing the name in the search box.

...to find the missing items such as Mono and pull them into the project(s) as needed.

ΩmegaMan
  • 29,542
  • 12
  • 100
  • 122
  • Pulling NuGet versions of these libraries will not yield a successful build of JSIL. Please do not provide misleading advice that will fail to address their problem. – Katelyn Gadd Feb 25 '14 at 07:59
  • @KatelynGadd, That is why I prefaced my post with "if the creators used...". – ΩmegaMan Feb 25 '14 at 13:59