2017-04-14 4 views
0

J'ai une application Web .NETCoreApp 1.1 et j'ai ajouté une référence à un ensemble d'autres projets qui ciblent également .NETCoreApp 1.1. Mais une raison pour laquelle je ne peux pas utiliser les classes dans ces projets. Quand j'utilise le nom de la classe, resharper/VS ne me donne pas de suggestions pour importer l'espace de noms correct, et quand je tape manuellement une utilisation pour l'espace de nom correct, ce n'est pas reconnu. Je devrais noter qu'entre les bibliothèques de classes je peux très bien lier à d'autres projets, mais il se décompose entre un projet ASP.NET et une bibliothèque de classes. Comment puis-je faire cela?Impossible de référencer d'autres projets depuis le projet ASP.NET Core

C'est ce que mon application web ressemble à:

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

Et l'un des projets référencés:

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

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

</Project> 

Voici mon code:

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(); 
     } 
    } 
} 

Dans la bibliothèque de classes :

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

     public string Bar { get; set; } 
    } 
} 
+0

Pour clarifier: la construction du projet fonctionne-t-elle toujours? Est-ce seulement Intellisense/autocomplete qui ne fonctionne pas? Aussi, pouvez-vous partager un extrait du C# que vous essayez d'écrire? – natemcmaster

+0

@natemcmaster non, le bâtiment ne fonctionne pas non plus. La même erreur J'ai mis à jour le post avec un extrait de code. –

Répondre

2

Il s'est avéré être un problème ReSharper. Je l'ai désactivé temporairement et maintenant tout fonctionne bien. Très ennuyant.

En outre: le chargement de solution légère peut avoir quelque chose à voir avec cela. Essayez de désactiver cela.

+0

J'ai rencontré le même problème, mais je n'avais pas ReSharper. Il s'est avéré être le chargement de la solution légère. Une fois que j'ai éteint cela a résolu mon problème. –

0

Ajoutez using Commands; en haut du fichier qui contient Test1CommandHandler. Cela est requis car Test1Command se trouve dans un espace de noms différent de Test1CommandHandler.

+0

Oui, je sais ... Si vous lisez mon message, vous pouvez voir que j'ai essayé cela. –

+0

Mon mauvais. Vous avez mentionné cela, je l'ai juste raté. – natemcmaster

+0

pas de soucis :) J'ai résolu le problème, s'est avéré être un bug ReSharper:/Merci pour l'aide! –