Я в процессе перемещения существующего решения на ASP.NET vNext. Мое решение - традиционное приложение N-уровня. Имея это в виду, решение имеет четыре проекта. Эти четыре проекта организованы следующим образом:Перемещение решения в ASP.NET vNext - Невозможно ссылаться на сборку
/backend
/library
Sample.cs
project.json
/web
project.json
/test
/library
SampleTest.cs
project.json
/web
project.json
global.json
Короче говоря, проект web
ссылается на проект library
. Проект /test/library/
предназначен для тестирования проекта library
. Проект /test/web/
предназначен для тестирования проекта web
. Моя проблема заключается в том, что я не могу ссылаться на проект library
из моего проекта test
. Если я пытаюсь ссылаться на класс в library
, я получаю сообщение об ошибке, которая говорит:
System.IO.FileLoadException: Could not load file or assembly 'library' or one of
its dependencies. General Exception (Exception from HRESULT: 0x80131500)
System.IO.FileLoadException: Could not load file or assembly 'library' or one of
its dependencies. General Exception (Exception from HRESULT: 0x80131500)
File name: 'library' ---> Microsoft.Framework.Runtime.Roslyn.RoslynCompilationEx
ception: C:\Projects\MySolution\test\library\SampleTest.cs(21,7
): error CS0246: The type or namespace name 'Sample' could not be found (
are you missing a using directive or an assembly reference?)
Вот содержание моих связанных файлов
/backend/library/project.json
{
"version":"3.0.0.0",
"description":"This is the app library",
"compilationOptions": {
"warningsAsErrors": true
},
"dependencies": {
"Microsoft.Data.Common":"0.1.0.0-alpha-build-0137"
},
"code": [ "**\\*.cs", "..\\Shared\\*.cs" ],
"frameworks": {
"net45": {}
}
}
/backend/library/Sample.cs
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Common;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
namespace MySolution.Library
{
public class Sample
{
public int Id { get; set; }
public string Name { get; set; }
public void Save()
{
}
}
}
/test/library/project.json
{
"commands": {
"test": "Xunit.KRunner"
},
"dependencies": {
"Xunit.KRunner": "1.0.0-beta1"
},
"frameworks": {
"aspnet50": { },
"aspnetcore50": { }
}
}
/test/library/SampleTest.cs
using System.IO;
using Microsoft.Framework.Runtime;
using Xunit;
namespace MySolution.Library
{
public class SampleTest
{
[Fact]
public void Save()
{
Sample sample = new Sample();
sample.Save();
Assert.NotNull(sample);
}
}
}
global.json
{
"sources": [ "backend/library" ]
}
Что я делаю неправильно? Почему я не могу ссылаться на мой проект library
из моего проекта test
?
Спасибо!
Если добавить 'library' в' тест \ Library \ project.json ', как показано в # 2, я получаю сообщение об ошибке. Если я запустил 'kpm restore', то я получаю ошибку:' TODO: ссылки на циклическую зависимость не поддерживаются. Пакет 'library' .'. Если я запустил тест, я получаю сообщение об ошибке: «Процесс завершается из-за StackOverflowException.' – user70192
Просто, чтобы исключить некоторые другие проблемы, можете ли вы попробовать переименовать тестовый проект на что-то еще? Как 'library.test' –
bravo !. Я переименовал каталог '/ test/library' в' test/library-tests', и он сработал. Это похоже на хак. Однако он работает. Спасибо за помощь! – user70192