2016-02-26 24 views
7

Mam aplikację konsolową DNX, która odwołuje się do projektu biblioteki klas. Próbuję to opublikować i zainstalować jako globalne polecenie.Uruchamianie aplikacji konsoli Dnx z ​​zależnościami projektu jako polecenia globalnego

Robię to w systemie Windows 10. Projects Tree

projekt konsoli Program.cs

namespace Vert.Commands 
{ 
    public class Program 
    { 
     public static void Main(string[] args) 
     { 
      var test = new ConsoleWriter(); 
      test.Talk("Test", ConsoleColor.Cyan); 
     } 
    } 
} 

projekt konsoli Biblioteka project.json

{ 
    "version": "1.0.0-*", 
    "description": "Test App", 
    "authors": [ "vrybak" ], 
    "tags": [ "" ], 
    "projectUrl": "", 
    "licenseUrl": "", 
    "compilationOptions": { 
    "emitEntryPoint": true 
    }, 
    "dependencies": { 
    "CommandLib": "1.0.0-*" 
    }, 
    "commands": { 
    "vm-test-job": "Vert.Commands" 
    }, 
    "frameworks": { 
    "dnx451": {} 
    } 
} 

Klasa: CommandLib file: ConsoleWriter

namespace CommandLib 
{ 
    public class ConsoleWriter 
    { 
     public void Talk(string message, ConsoleColor color) 
     { 
      var currentColor = Console.ForegroundColor; 
      Console.ForegroundColor = color; 
      Console.WriteLine(message); 
      Console.ForegroundColor = currentColor; 
     } 
    } 
} 

Class Library: project.json

{ 
    "version": "1.0.0-*", 
    "description": "CommandLib Class Library", 
    "authors": [ "vrybak" ], 
    "tags": [ "" ], 
    "projectUrl": "", 
    "licenseUrl": "", 
    "frameworks": { 
    "dnx451": { } 
    } 
} 

Próbuję zainstalować globalnego polecenia vm-test-job Aby to zrobić I

  1. cd do folderu src/Vert.Commands
  2. opublikować go jako pakiet
  3. dnu publish --no-source -o artifacts\publish
  4. cd \artifacts\publish\approot
  5. dnu commands install .\packages\Vert.Commands\Vert.Commands.1.0.0.nupkg

Kiedy próbuję uruchomić mój rozkaz vm-test-job pojawia się błąd System.IO.FileNotFoundException: Could not load file or assembly 'CommandLib, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.

Jak zainstalować polecenie, które znajduje się w konsoli app projektu, który odwołuje inne projekty?

+0

Witamy w StackOverflow. Czy mógłbyś podać system operacyjny (domyślam się, że to Windows), używaną wersję szkieletową. Dziękuję Ci. – Fab

+0

Czy określono zależności, jak określono tutaj: http://docs.asp.net/en/latest/dnx/projects.html#adding-dependencies – Fab

+0

Określiłem moje zależności, spójrz na nie w moim pliku project.json –

Odpowiedz

1

Czy próbowali robi ...

dnu restore 

... przed zainstalowaniem polecenia? Myślę, że dnvm musi odbudować/przepakować swoje zależności przed instalacją.

Spójrz na ten link, który próbuje osiągnąć to samo, co ja. http://blogs.msdn.com/b/sujitdmello/archive/2015/04/23/step-by-step-installation-instructions-for-getting-dnx-on-your-laptop.aspx

+0

Próbowałem również przywrócić wcześniej. Nie pozwoliłbym go opublikować, gdyby nie było pakietów zależnych. Problem polega na tym, że kiedy próbuję zainstalować polecenie globalne, dnx nie wie, gdzie znajduje się odniesienie do projektu. –