2014-02-05 62 views
2

我已經從這裏下載Apache Thrift 0.9.1:http://wiki.apache.org/thrift/ThriftUsageCSharp。在Visual Studio 2010中,我在thrift/lib/csharp/src中打開了.sln文件。Visual Studio 2010編譯錯誤(Thrift 0.9.1編譯)

但是,我無法構建解決方案。我得到這個錯誤:

Error 3 The command "rmdir /s /q "C:\Users\RS88517\Documents\Visual Studio 2010\Projects\thrift-0.9.1\lib\csharp\test\ThriftTest\gen-csharp" 
del /f /q "C:\Users\RS88517\Documents\Visual Studio 2010\Projects\thrift-0.9.1\lib\csharp\test\ThriftTest\ThriftImpl.dll" 
SET OUTPUT_DIR=C:\Users\RS88517\Documents\Visual Studio 2010\Projects\thrift-0.9.1\lib\csharp\test\ThriftTest\ 
SET THRIFT_FILE=C:\Users\RS88517\Documents\Visual Studio 2010\Projects\thrift-0.9.1\lib\csharp\test\ThriftTest\\..\..\..\..\test\ThriftTest.thrift 
for %%I in ("%OUTPUT_DIR%") do set SHORT_DIR=%%~fsI 
for %%I in ("%THRIFT_FILE%") do set THRIFT_SHORT=%%~fs 
"C:\Users\RS88517\Documents\Visual Studio 2010\Projects\thrift-0.9.1\lib\csharp\test\ThriftTest\\..\..\..\..\compiler\cpp\thrift.exe" --gen csharp -o %SHORT_DIR% %THRIFT_SHORT% 
c:\Windows\Microsoft.NET\Framework\v4.0.30319\Csc.exe /t:library /out:"C:\Users\RS88517\Documents\Visual Studio 2010\Projects\thrift-0.9.1\lib\csharp\test\ThriftTest\ThriftImpl.dll" /recurse:"C:\Users\RS88517\Documents\Visual Studio 2010\Projects\thrift-0.9.1\lib\csharp\test\ThriftTest\gen-csharp"\* /reference:"C:\Users\RS88517\Documents\Visual Studio 2010\Projects\thrift-0.9.1\lib\csharp\test\ThriftTest\..\..\src\bin\Debug\Thrift.dll"" exited with code 1. 

我看着在許多地方,我不知道該怎麼做。

回答

2

這是ThriftTest項目的預構建步驟。如果你有它的煩惱,這可能是難以調試,步驟如下:

  1. 從C#項目完全取出預生成步驟東西(Project Properties對話框,生成事件選項卡)

  2. 編譯生成Thrift運行時程序集的\lib\csharp\src\Thrift.csproj。或者,考慮將Thrift.csproj項目納入解決方案中,這樣可以更輕鬆地處理。

  3. 打開命令行,導航到相應的文件夾並調用thrift.exe --gen csharp ThriftTest.thrift以從IDL生成代碼。這將生成一個新文件夾gen-csharp,其中包含一堆文件。 ThriftTest.thrift IDL文件位於\test文件夾中。

  4. 確保從第3步中生成的文件都包含在ThriftTest項目

  5. 創造一切

注意,對於第3步,你需要在你的路徑節儉編譯器(thrift.exe)。該文件在Apache Thrift網站上作爲預編譯下載提供,您無需自行構建。

+0

謝謝。 「從C#項目中完全刪除預構建步驟內容」是什麼意思?僅供參考,當我進入「屬性」中的「設置」時,我沒有設置文件。 –

+1

即使在C#Express版本中也有一個選項卡「構建事件」。就是那個。 – JensG

+0

是的,它修復了它。至於thrift.exe第3步,這是在文件夾編譯器/ CPP的權利?我得到[FAILURE:arguments:1]無法用realpath打開輸入文件:ThriftTest.thrift當我運行你指定的命令時。此外,gen-csharp是2個文件夾,在tutorial和tutorial/csharp中。找不到任何一個解決方案。所以我仍然感到困惑。 –