2014-02-24 56 views
2

我有一个应用程序,我正尝试使用JSIL。在试图做到这一点,我已经做了以下内容:无法构建JSIL

  1. 使用以下命令行命令下载代码:git clone --recursive https://github.com/sq/JSIL.git
  2. 开业JSIL.sln在Visual Studio 2013高级
  3. 重建整个解。

当我这样做时,我得到了1200多个错误。他们似乎都与缺少参考有关。他们中的大部分似乎是:

  • 类型或命名空间名称“单声道”找不到
  • 类型或命名空间名称“ICSharpCode”找不到
  • 类型或命名空间名称类型系统”无法找到
  • 类型或命名空间名称‘MethodReference’找不到
  • ‘JSIL.Transforms.DecomposeMutationOperators.TypeSystem’是一种‘场’,但使用像一个‘类型’
  • 的类型或名称空间名称'字段参考'无法找到

有谁知道我在想什么/做错了什么?这似乎是一个强大的工具(如果它的工作正确)。我真的想给它一个镜头。

谢谢你的任何见解。

回答

2

您需要按照网页上的说明拉动git子模块。

git submodule update --init --recursive 

如果你看了编译错误越接近,你会看到,编译失败,因为你缺少项目文件(和项目文件由子模块提供)。

拉入NuGet包不会解决此问题,因为JSIL依赖于Mono.Cecil和ILSpy的特定版本;中继版本将不起作用。

+0

可以使用NuGet来提取特定的版本。参见[使用NuGet下载旧版本软件包](http://stackoverflow.com/questions/5628689/download-old-version-of-package-with-nuget) – OmegaMan

0

如果项目的创建者使用NuGet包管理器,这些引用应该很容易解决。

在Visual Studio中你身边首先,转到文件菜单

  1. Tools - >Options - >Package Manager
  2. 检查Allow NuGet to download missing packages和应用。
  3. 做完全重建。

如果仍不能解决问题(或修复所有)丢失的引用,使用的NuGet包管理器...

  1. Tools - >Library Package Manager - >Manage NuGet Packages for Solution
  2. 选择Online和搜索每个通过在搜索框中输入名称来缺少引用。

...找到缺失的项目,如Mono,并根据需要将它们拖入项目中。

+0

拉这些库的NuGet版本不会产生成功的JSIL版本。请不要提供误导性的建议,以免解决他们的问题。 –

+0

@KatelynGadd,这就是为什么我以“如果创作者使用...”开头我的帖子。 – OmegaMan