我有一个.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; }
}
}
答案 0 :(得分:2)
原来是ReSharper问题。我暂时禁用它,现在一切正常。非常烦人。
另外:轻量级解决方案加载可能与它有关。尝试禁用它。
答案 1 :(得分:0)
将using Commands;
添加到包含Test1CommandHandler的文件的顶部。这是必需的,因为Test1Command与Test1CommandHandler位于不同的名称空间中。