无法从ASP.NET Core项目引用其他项目

时间:2017-04-14 06:40:07

标签: c# asp.net asp.net-core .net-core class-library

我有一个.NETCoreApp 1.1 Web应用程序,我添加了一系列针对.NETCoreApp 1.1的其他项目的引用。但是有些原因我不能在这些项目中使用这些类。当我使用类名时,resharper / VS没有给我建议导入正确的命名空间,当我手动输入正确的命名空间使用时,它不被识别。我应该注意,在类库之间我可以很好地链接到其他项目,但它在ASP.NET项目和类库之间分解。我该怎么做?

这就是我的网络应用程序的样子:

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>netcoreapp1.1</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <Folder Include="wwwroot\" />
  </ItemGroup>
  <ItemGroup>
    <PackageReference Include="Microsoft.ApplicationInsights.AspNetCore" Version="2.0.0" />
    <PackageReference Include="Microsoft.AspNetCore" Version="1.1.1" />
    <PackageReference Include="WindowsAzure.Storage" Version="8.1.1" />
  </ItemGroup>
  <ItemGroup>
    <ProjectReference Include="..\Commands\Commands.csproj" />
  </ItemGroup>

</Project>

其中一个参考项目:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>netcoreapp1.1</TargetFramework>
  </PropertyGroup>

</Project>

这是我的代码:

using System;
using System.Threading.Tasks;

namespace Worker.Handlers
{
    public class Test1CommandHandler : IHandler<Test1Command>
    {
        public Task HandleAsync(Test1Command message)
        {
            throw new NotImplementedException();
        }

        public Task HandlePoisonAsync(Test1Command message)
        {
            throw new NotImplementedException();
        }
    }
}

在课程库中:

namespace Commands
{
    public class Test1Command
    {
        public string Foo { get; set; }

        public string Bar { get; set; }
    }
}

2 个答案:

答案 0 :(得分:2)

原来是ReSharper问题。我暂时禁用它,现在一切正常。非常烦人。

另外:轻量级解决方案加载可能与它有关。尝试禁用它。

答案 1 :(得分:0)

using Commands;添加到包含Test1CommandHandler的文件的顶部。这是必需的,因为Test1Command与Test1CommandHandler位于不同的名称空间中。