2017-07-25 2 views
0

J'ai deux applications identiques basées sur .net core.Espace de noms manquant sur la même version de framework

Le premier est sur le conteneur docker, où j'ai la version 1.0.4 du noyau .net.

Deuxième est sur ma machine virtuelle Ubuntu 16.0.4 où j'ai la version 1.0.4 du noyau .net aussi. Le problème est que lorsque je veux utiliser Claims sur une application basée sur un conteneur docker, l'espace de noms Claims ne peut pas être trouvé, mais sur Ubuntu vm, tout est ok.

Pourquoi est-ce? Les deux applications utilisent le même cadre de base .net, alors pourquoi est-ce que je ne trouve pas l'espace de noms Claims sur mon conteneur docker?

Il peut semble bizarre mais j'ai 3 solutions, dans la première solution revendications espace de noms est disponible, mais sur le reste doestn't

Il y a des fichiers csproj.

<Project Sdk="Microsoft.NET.Sdk.Web"> 
    <PropertyGroup> 
    <TargetFramework>netcoreapp1.1</TargetFramework> 
    </PropertyGroup> 
    <ItemGroup> 
    <Folder Include="wwwroot\" /> 
    </ItemGroup> 

    <ItemGroup> 
    <PackageReference Include="AutoMapper" Version="6.1.1" /> 
    <PackageReference Include="Microsoft.AspNetCore" Version="1.1.1" /> 
    <PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="1.1.2" /> 
    <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="1.1.3" /> 
    <PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="1.1.2" /> 
    </ItemGroup> 
    <ItemGroup> 
    <ProjectReference Include="..\Evento.Infrastructure\Evento.Infrastructure.csproj" /> 
    </ItemGroup> 
</Project> 

Deuxième

<Project Sdk="Microsoft.NET.Sdk"> 
    <ItemGroup> 
    <ProjectReference Include="..\Evento.Core\Evento.Core.csproj" /> 
    </ItemGroup> 
    <ItemGroup> 
    <PackageReference Include="AutoMapper" Version="6.0.2" /> 
    <PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="1.1.2" /> 
    <PackageReference Include="NLog.Extensions.Logging " Version="1.0.0-*" /> 
    <PackageReference Include="NLog.Web.AspNetCore" Version="4.4.0" /> 
    <PackageReference Include="Microsoft.AspNetCore" Version="1.1.1" /> 
    </ItemGroup> 
    <PropertyGroup> 
    <TargetFramework>netstandard1.4</TargetFramework> 
    </PropertyGroup> 

</Project> 

Troisième

<Project Sdk="Microsoft.NET.Sdk"> 
    <PropertyGroup> 
    <TargetFramework>netstandard1.4</TargetFramework> 
    </PropertyGroup> 
</Project> 

Répondre

0

Je n'ai pas travaillé avec .net sur les contenants de docker. Mais je peux vous donner un pointeur pour vérifier. Lors de l'exécution de la machine virtuelle et d'un conteneur docker, beaucoup de choses pourraient être différentes.

Votre machine virtuelle pourrait avoir un fichier bash_profile avec certains paramètres PATH qui peuvent être manquants sur docker. De plus, votre conteneur docker n'exécutera que le processus principal alors que dans votre machine virtuelle, d'autres services pourraient être en cours d'exécution. Cela peut ou non avoir un impact sur votre code.