2014-02-24 94 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