The easiest way is to make sure that your ASP.NET 5 web project and the test project share a common parent directory. For example:
Solution
|-- Web
| |-- project.json
|-- Tests
| |-- project.json
That way Roslyn will be able to resolve the symbols across different subdirectories.
Of course, you'll also need to add a dependency from the Tests project to the Web project in the Testsproject.json
file:
{
"webroot": "wwwroot",
"version": "1.0.0-*",
"dependencies": {
"Web": "1.0.0-*"
},
"frameworks": {
"dnx451": { },
"dnxcore50": { }
}
}
If they can't have common parent directory, you can always add a global.json
file in the root directory with the list of subdirectories that contain source code.
Solution
|-- global.json
|-- Web
| |-- project.json
|-- Tests
| |-- project.json
where global.json
contains:
{
"sources": ["Web", "Tests"]
}
Using "Add Reference" in Visual Studio 2015
If when you reference a class library project from an ASP.NET 5 Web project using the Add Reference dialog in Visual Studio 2015 you get this error:
A reference to <ProjectName> could not be added.
It means that the project you're trying to reference isn't a DNX project but rather a normal Class Library project. You need to make sure that the class library is an ASP.NET Class Library (Package) project in order to reference it.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…