缺less相同版本的框架上的命名空间

我有两个相同的基于.net核心的应用程序。

首先是在docker集装箱,我有1.0.4版本的.net核心。

其次是在我的虚拟机Ubuntu 16.0.4,我也有.net核心的1.0.4版本。

问题是,当我想要在基于Docker容器的应用程序上使用声明时,找不到声明名称空间,但是在Ubuntu虚拟机上,一切正常。

这是为什么? 这两个应用程序使用相同的.net核心框架,所以为什么我不能find我的docker集装箱上的声明命名空间?

这可能听起来很奇怪,但是,我有3个解决scheme,第一个解决scheme声明命名空间是可用的,但其余的doestn't

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

第二

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

第三

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

我没有在docker容器上使用.net。 但是我可以给你一个检查的指针。 运行虚拟机和Docker容器时,很多事情可能会有所不同。

您的虚拟机可能有一个bash_profile与一些可能会丢失在docker上的PATH设置。 此外,您的docker集装箱将只运行主stream程,而在您的虚拟机其他服务可能正在运行。 这可能会或可能不会影响您的代码。