2014-07-02 68 views
10

我想在Windows PowerShell的.NET vNext中構建一個控制檯應用程序。到目前爲止,我已經通過如何從Windows Powershell構建運行vNext應用程序?

升級包

KVM升級

從中我得到了包版「KRE-svr50-x86.1.0.0-alpha3-10070」,並選中了「別名」以符合版本。現在

,我寫了一個控制檯應用程序包含下面幾行:

using System; 

public class Program 
{ 
    public static void Main() 
    { 
     Console.WriteLine("Why Soo serious!!!! "); 
    } 
} 

和波紋管的project.json

{ 
    "dependencies": { 
    "System.Console": "4.0.0.0" 
    }, 
    "configurations": { 
    "net45": {}, 
    "k10": {} 
    } 
} 

而現在,每當我試圖從Windows Poweshell運行這個它列出了缺少dll(特別是命名空間系統)下面的構建輸出:
(json和cs文件在同一文件夾中,因此沒有與json相關的錯誤)

KPM構建

(1,12):錯誤CS0246:類型或命名空間名稱 '系統' 無法找到(是否缺少using指令或程序集引用?)

如何參考圖書館。 請幫我找到我在哪裏以及如何修復它...

回答

12

您的問題與nuget配置有關。

要查看它的工作方式,請轉到您的project.json文件夾並執行「kpm恢復」。您將看到:

無法找到System.Console> = 4.0.0.0

這happends因爲KPM即使用不同的塊存儲庫:https://www.myget.org/F/aspnetvnext/

該倉庫沒有NuGet包for System.Console

爲了解決這個問題,您需要一個NuGet.Config文件,它位於您的project.json文件夾之外,您將在其中指定標準nuget存儲庫(以獲取System.Console包)和th e asp.net vnext存儲庫,以便您可以獲取asp.net vnext特定的存儲庫。

該文件應該是這個樣子:

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <packageSources> 
    <add key="AspNetVNext" value="https://www.myget.org/F/aspnetvnext/" /> 
    <add key="NuGet.org" value="https://nuget.org/api/v2/" /> 
    </packageSources> 
    <packageSourceCredentials> 
    <AspNetVNext> 
     <add key="Username" value="aspnetreadonly" /> 
     <add key="ClearTextPassword" value="4d8a2d9c-7b80-4162-9978-47e918c9658c" /> 
    </AspNetVNext> 
    </packageSourceCredentials> 
</configuration> 

也看出來你的文件夾結構:

/ - root folder 
- NuGet.config 
- your project folder 
-- project.json 
-- source code files 

您所創建的文件夾結構之後例證,並把NuGet.config在正確的地方你做一個「kpm恢復」,你會看到System.Console已解決,然後發佈「kpm build」全部正在構建

+0

我錯過了Nuget.config必須高一級。不會猜到... – jeffa00

+1

完美的答案 - 這是怎麼沒有記錄在其他地方? –

+0

我有完全相同的問題,並且這個解決方案根本沒有幫助我 - 當我運行'kpm restore'時,我仍然無法找到System.Console> = 4.0.0.0'錯誤信息 –

7

如果你還在havi在這個問題上,我在10.10以下,嘗試改變你的項目。JSON文件到這一點:

"dependencies": { 
    "System.Console": "4.0.0-beta-22210" 
}, 

(請注意,這將有作爲System.Console改變時被更新,但至少你今天能夠編譯)。

+4

將它設置爲** 3.9.9.9 **也可以工作。至少如果你這樣做,你會得到更新,因爲他們被釋放。無論出於何種原因,4.0.0-beta-22210 <4.0.0.0到kpm。 – mrBallistic

+1

在'ubuntu 14.04'上爲我工作 –

+0

我剛剛使用了yeoman aspnet控制檯應用程序模板,生成的project.json指定了以下依賴項「System.Console」:「4.0.0-beta - *」'。隨着內部版本的發展,這可能是更好的選擇。 – Lou

相關問題