2016-05-22 12 views
9

Projemi, alt projeleri tanımlayan global.json içeren bir "çözüm" ile vscode olarak kurdum. Bunlar şu anda web uygulamam ve bir sınıf kütüphanesi.Tek bir çözüm altında birden çok dotnet temel projeyle vscode'da hata ayıklama

{ 
"version": "0.2.0", 
"configurations": [ 
    { 
     "name": "WebApp", 
     "type": "coreclr", 
     "request": "launch", 
     "preLaunchTask": "", 
     "program": "${workspaceRoot}/WebApp/bin/Debug/netcoreapp1.0/WebApp.dll", 
     "args": [], 
     "cwd": "${workspaceRoot}/WebApp/", 
     "stopAtEntry": false, 
     "launchBrowser": { 
      "enabled": true, 
      "args": "${auto-detect-url}", 
      "osx": { 
       "command": "open" 
      } 
     } 
    } 
] 

}

Bu iki sorunlar var: iyi çalışır ve benim web uygulaması hata ayıklamak için bir girişim kök dizin altında aşağıdaki launch.json kurulum

.

  1. PreLaunchTask yapısını kaldırmak zorunda kaldım çünkü kök dizininden oluşturmaya çalışır. İdeal değil ama önce el ile inşa ederek çalışabilirim.

  2. Hata ayıklayıcısını başlattığınızda, alt proje yerine kök dizinine baktığından kaynak kodunu bulamaz. Bu bir gösteri durdurucusudur, çünkü kaynak yükü olmadan kesme noktalarını kullanamıyorum.

Bu sorunların bir yolu var mı?

Güncelleme: 9 Ağustos 2016

doğrudan Omnisharp konuyu aldı ve bir çözüm altında bir uygulamayı ve ayrı kütüphane hata ayıklamak edememek, biraz daha ileri aldık. Yine de tek bir çözüm altında birden fazla çalıştırılabilir projede ikramiyeyi vurmadım. Ne yazık ki, bu projeyi artık sürdürmüyorum ama umarım bu, bir kimseye toplam çözüm yolunda yardımcı olabilir. tartışma ve kod örneklerine

Bağlantı: https://github.com/OmniSharp/omnisharp-vscode/issues/460#issuecomment-228392486

+0

Burada aynı sorunu yaşıyorum, hiç bir çözüm buldunuz mu? – chris

+1

@chris maalesef burada devam etmekte olan bir tartışma var: http://forums.dotnetfoundation.org/t/referencing-another-project-in-net-core/1298/9 (yorumlara bakınız). Bir geçici çözüm bulursam gönderiyi güncelleyeceğim, ancak büyük olasılıkla görünmeyecek. – matthewrk

+0

VS Kodu belgeleri http://stackoverflow.com/documentation/vscode/7717/multiple-projects-set-up#t=201611030739421019893 – Artru

cevap

5

Merhaba çocuklar ben .vscode klasöründe task.json dosyasında benim çözüm

global.json 
|src 
--|TestApp 
----Program.cs 
----project.json 
--|ExtLib 
----ExtLibClass.cs 
----project.json 

i aşağıdaki yapıya sahip aynı problem vardı sen böyle seçenekler değerini belirlemek zorunda:

"command": "dotnet", 
"isShellCommand": true, 
"options": { 
    "cwd": "${workspaceRoot}/src/TestApp" 
}, 

ve böyle bir program özelliğini değiştirmek zorunda .vscode klasöründe launch.json dosyasında

:

"configurations": [ 
    { 
     "name": "TestApp Debug", 
     "type": "coreclr", 
     "request": "launch", 
     "preLaunchTask": "build", 
     "program": "${workspaceRoot}/src/TestApp/bin/Debug/netcoreapp1.0/TestApp.dll", 
     "args": [], 
     "cwd": "${workspaceRoot}/src/TestApp", 

yüzden sen örnek birden çalıştırılabilir projelerin yani için varsa görsel stüdyo kodu

0

bir çözümde birden fazla proje debugBir istemci/sunucu:

Proje yapısı:

Project 
--|Server 
----Program.cs 
----project.json 
--|Client 
----Program.cs 
----project.json 

Ben launch.json

"configurations": [ 
    { 
     "name": "Server", 
     "type": "coreclr", 
     "request": "launch", 
     "preLaunchTask": "build", 
     "program": "${workspaceRoot}/Server/bin/Debug/netcoreapp1.1/Server.dll", 
     "args": [], 
     "cwd": "${workspaceRoot}/Server", 
     "stopAtEntry": false, 
     "externalConsole": false 
    }, 
    { 
     "name": "Client", 
     "type": "coreclr", 
     "request": "launch", 
     "preLaunchTask": "build", 
     "program": "${workspaceRoot}/Client/bin/Debug/netcoreapp1.1/Client.dll", 
     "args": [], 
     "cwd": "${workspaceRoot}/Client", 
     "stopAtEntry": false, 
     "externalConsole": false 
    }] 

iki değişik konfigürasyonları Ve tasks.json

{ 
    "version": "0.1.0", 
    "command": "dotnet", 
    "isShellCommand": true, 
    "args": [], 
    "tasks": [ 
     { 
     "taskName": "build", 
     "args": ["Server","Client"], 
     "isBuildCommand": true, 
     "showOutput": "silent", 
     "problemMatcher": "$msCompile" 
     } 
    ] 
} 

Bu irade kurulum iki debuggable projemiz var, ve PreBuildTask, Hata ayıklamaya başlamadan önce,alanında belirtilen projeleri tasks.json. (Sunucu ve İstemci projeleri) Bu durumda

benim belirttiğim ki WebHostBuilder yılında Program.cs

.UseUrls("http://localhost:5002") 

Bu tarafından, aynı anda hata ayıklama edebilmek için, farklı limanlara bağlamak için projeler belirledik, NOT VsCode kullanıyorsanız launchsettings.json'da değiştirilebilir.

3

Kod v1.10.2'de, kökte bir çözümünüz varsa, birden çok projeyle çalışabilirsiniz. Çözüm görsel stüdyo 15 formatında olmalıdır.

Bu çözüm bu yeni dotnet cli komutlarını kullanarak tanımlanabilir: Proje A'da bazı proje B'ye bir başvuru eklemek için Ayrıca

dotnet new sln //creates a new solution in folder 
dotnet sln add <path to the csproj file> //adds project to solution 

, A klasörü proje hareket etmeli ve çalıştırma:

dotnet add reference <path to the project B csproj file>