2014-07-02 21 views
10

Tôi đang cố tạo ứng dụng bảng điều khiển trong .NET vNext từ Windows PowerShell. Cho đến nay tôi đã nâng cấp gói bằngLàm thế nào để xây dựng ứng dụng vNext từ Windows Powershell?

KVM nâng cấp

từ mà tôi đã phiên bản gói "KRE-svr50-x86.1.0.0-alpha3-10070" và cũng kiểm tra các "bí danh" để phù hợp với phiên bản.

Bây giờ, tôi đã viết một ứng dụng giao diện điều khiển chứa dòng sau:

using System; 

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

và rống lên những project.json

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

Và bây giờ, bất cứ khi nào tôi cố gắng chạy này từ Windows Poweshell nó sẽ liệt kê ra thiếu dll (hệ thống tên miền cụ thể) dưới đầu ra xây dựng:
(cả tệp json và cs trong cùng một thư mục để không có lỗi liên quan đến json)

KPM build

(1,12): lỗi CS0246: Loại hoặc namespace tên 'hệ thống' không thể tìm thấy (là bạn thiếu một chỉ thị sử dụng hoặc tham khảo một hội?)

Làm thế nào để tham khảo thư viện. Hãy giúp tôi tìm nơi (cái gì) tôi đang thiếu và cách sửa chữa ...

Trả lời

12

Sự cố của bạn liên quan đến cấu hình nuget.

Để xem cách hoạt động, hãy truy cập thư mục project.json của bạn và thực hiện khôi phục "kpm". bạn sẽ thấy:

Không thể xác định vị trí System.Console> = 4.0.0.0

này happends vì KPM sử dụng một kho nugget khác nhau đó là: https://www.myget.org/F/aspnetvnext/

Đó kho không có gói NuGet cho System.Console

Để giải quyết vấn đề này, bạn cần tệp NuGet.Config ngay bên ngoài thư mục project.json của bạn, trong đó bạn sẽ chỉ định kho lưu trữ tiêu chuẩn (để lấy gói System.Console) và thứ e kho lưu trữ asp.net vnext để bạn có thể nhận được kho lưu trữ cụ thể asp.net vnext.

Đó tập tin nên tìm một cái gì đó như thế này:

<?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> 

Cũng tìm cho ra cấu trúc thư mục của bạn:

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

Sau khi bạn đã tạo ra các cấu trúc thư mục như được minh họa và đặt NuGet.config trong đúng nơi bạn làm một "phục hồi kpm" và bạn sẽ thấy rằng System.Console được giải quyết và sau đó phát hành "xây dựng kpm" tất cả được xây dựng một cách chính xác

+0

Tôi bị thiếu Nuget.config phải là một cấp cao hơn một chút. Sẽ không đoán được rằng ... – jeffa00

+1

Câu trả lời hoàn hảo - làm thế nào điều này không được ghi lại ở bất cứ nơi nào khác ??? –

+0

Tôi đã gặp vấn đề tương tự, và giải pháp này không giúp tôi chút nào - tôi vẫn nhận được thông báo lỗi 'Không thể định vị System.Console> = 4.0.0.0' khi tôi chạy 'kpm restore' –

7

Nếu bạn vẫn còn havi ng vấn đề này, và tôi dưới 10,10, hãy thử thay đổi dự án của bạn.tập tin json này:

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

(nhớ bạn, bạn sẽ phải cập nhật thành System.Console được thay đổi, nhưng ít nhất bạn sẽ có thể biên dịch ngày hôm nay).

+4

đặt nó thành ** 3.9.9.9 ** cũng có thể hoạt động. ít nhất nếu bạn làm điều đó, bạn sẽ nhận được thông tin cập nhật khi chúng được phát hành. vì bất kỳ lý do gì, 4.0.0-beta-22210 <4.0.0.0 đến kpm. – mrBallistic

+1

đã làm việc cho tôi trên ubuntu 14.04' –

+0

Tôi vừa sử dụng mẫu ứng dụng giao diện điều khiển yeoman aspnet và project.json được tạo ra chỉ định phụ thuộc sau "System.Console": "4.0.0-beta - *" '. Đây có thể là một lựa chọn tốt hơn khi các số bản dựng tiến lên phía trước. – Lou

Các vấn đề liên quan