2016-05-22 3 views
9

मैंने अपनी परियोजना को रूट "समाधान" के साथ बना दिया है जिसमें वैश्विक परियोजनाओं को परिभाषित करने वाला वैश्विक .json है। ये वर्तमान में मेरा वेब ऐप और एक क्लास लाइब्रेरी है।एक समाधान के तहत एकाधिक डॉटनेट कोर परियोजनाओं के साथ बनामोड में डीबगिंग

कि ठीक काम करता है, और मैं अपने वेब अनुप्रयोग डिबग करने की कोशिश में सेटअप रूट निर्देशिका के अंतर्गत निम्नलिखित launch.json है:

{ 
"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" 
      } 
     } 
    } 
] 

}

मैं इस के साथ दो मुद्दे हैं।

  1. मुझे प्रीलांच टास्क बिल्ड को हटाना पड़ा क्योंकि यह रूट डीआईआर से निर्माण करने की कोशिश करता है। आदर्श नहीं है लेकिन मैं मैन्युअल रूप से पहले निर्माण करके इसके आसपास काम कर सकता हूं।

  2. जब डीबगर लॉन्च होता है, तो यह स्रोत कोड को खोजने में विफल रहता है क्योंकि यह उप प्रोजेक्ट की बजाय रूट डीआईआर में दिखता है। यह एक शो स्टॉपर है क्योंकि मैं लोड किए गए स्रोत के बिना ब्रेकपॉइंट्स का उपयोग नहीं कर सकता।

क्या इन मुद्दों के आसपास कोई रास्ता है?

अद्यतन: 9 वीं अगस्त वर्ष 2016

मैं सीधे Omnisharp लिए इस मुद्दे को ले लिया और थोड़ा आगे हो गया है, एक समाधान के अंतर्गत कोई ऐप्स और एक अलग पुस्तकालय डिबग करने के लिए सक्षम किया जा रहा। हालांकि एक समाधान के तहत कई निष्पादन योग्य परियोजनाओं पर जैकपॉट को काफी हद तक नहीं मारा है। दुर्भाग्य से मैं अब इस परियोजना का पीछा नहीं कर रहा हूं लेकिन उम्मीद है कि यह किसी को कुल समाधान की दिशा में मदद कर सकता है। चर्चा और कोड नमूने को

लिंक: https://github.com/OmniSharp/omnisharp-vscode/issues/460#issuecomment-228392486

+0

मुझे यहां एक ही समस्या है, क्या आपने कभी समाधान निकाला है? दुर्भाग्यवश – chris

+1

@ क्रिसिस नहीं, मेरे पास भी एक सतत चर्चा है: http://forums.dotnetfoundation.org/t/referencing-another-project-in-net-core/1298/9 (टिप्पणियां देखें)। अगर मुझे कोई कामकाज मिल जाए तो मैं यहां पोस्ट अपडेट करूंगा लेकिन संभावना नहीं दिखती है। – matthewrk

+0

वीएस कोड प्रलेखन http://stackoverflow.com/documentation/vscode/7717/multiple-projects-set-up#t=201611030739421019893 – Artru

उत्तर

5

हाय दोस्तों मैं .vscode फ़ोल्डर में मेरी समाधान

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

task.json फ़ाइल में के लिए एक ही समस्या मैं निम्नलिखित संरचना है था आप इस तरह के विकल्प मान सेट करने के लिए है:

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

और आप इस तरह कार्यक्रम संपत्ति बदलना होगा .vscode फ़ोल्डर में launch.json फ़ाइल में:

"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", 

तो मैं आपको उदाहरण कई runnable परियोजनाओं अर्थात के लिए है, तो दृश्य स्टूडियो कोड

0

में एक समाधान में कई परियोजनाओं डीबग कर सकते हैंएक क्लाइंट/सर्वर:

परियोजना संरचना:

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

मैं 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 
    }] 

में दो विभिन्न विन्यास और tasks.json

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

हो जाएगा ताकि सेटअप दो डीबग करने परियोजनाएं हैं, और PreBuildTask वें संकलित करेगा ई-प्रोजेक्ट args फ़ील्ड में tasks.json में डिबगिंग शुरू करने से पहले निर्दिष्ट है। (सर्वर और क्लाइंट परियोजनाओं)

इस मामले में मैं अलग बंदरगाहों के लिए बाध्य करने के लिए, एक ही समय में उन्हें डिबग करने के लिए द्वारा निर्दिष्ट करते हैं कि WebHostBuilder में में Program.cs

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

यह सक्षम होने के लिए परियोजनाओं की स्थापना की है launchsettings.json में बदला जा सकता है यदि आप Visual Studio का उपयोग कर रहे हैं, तो वीएसकोड नहीं।

3

बनाम कोड v1.10.2 में यदि आप रूट में समाधान रखते हैं तो आप कई परियोजनाओं के साथ काम कर सकते हैं। समाधान विजुअल स्टूडियो 15 प्रारूप में होना चाहिए।

यह समाधान इन नए डॉटनैट CLI आदेश का उपयोग कर परिभाषित किया जा सकता है: परियोजना एक में कुछ परियोजना बी के लिए एक संदर्भ जोड़ने के लिए

dotnet new sln //creates a new solution in folder 
dotnet sln add <path to the csproj file> //adds project to solution 
इसके अलावा

, आप एक फ़ोल्डर परियोजना के लिए कदम और अमल करना चाहिए:

dotnet add reference <path to the project B csproj file> 
संबंधित मुद्दे