C# 带有.net标准库EF的.net核心web api
我在一个.net核心web api项目中遇到了最奇怪的问题。我添加了一个.net标准库,其中首先包含了我的模型和EF代码。当我部署到IIS Express时,所有这些都可以工作,但当我尝试将其发布到IIS时,生成失败C# 带有.net标准库EF的.net核心web api,c#,asp.net-core,C#,Asp.net Core,我在一个.net核心web api项目中遇到了最奇怪的问题。我添加了一个.net标准库,其中首先包含了我的模型和EF代码。当我部署到IIS Express时,所有这些都可以工作,但当我尝试将其发布到IIS时,生成失败 <Project Sdk="Microsoft.NET.Sdk.Web"> <PropertyGroup> <TargetFramework>netcoreapp2.0</TargetFramework> </
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp2.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<Folder Include="wwwroot\logs\" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.6" />
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="2.0.3" />
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.0.3" />
<PackageReference Include="Newtonsoft.Json" Version="11.0.2" />
<PackageReference Include="NLog.Web.AspNetCore" Version="4.5.4" />
</ItemGroup>
<ItemGroup>
<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet">
<Version>1.0.0-*</Version>
</DotNetCliToolReference>
</ItemGroup>
<ItemGroup>
<DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.3" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\mobileapp\forms\xxxCallManager\xxxDalCoreStandard\xxxDalCoreStandardxxxlDalCoreStandard.csproj" />
</ItemGroup>
<ItemGroup>
<Reference Include="System.Text.Encoding.CodePages">
<HintPath>..\..\..\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\ReferenceAssemblies\Microsoft\Framework\MonoAndroid\v1.0\Facades\System.Text.Encoding.CodePages.dll</HintPath>
</Reference>
</ItemGroup>
</Project>
netcoreapp2.0
1.0.0-*
..\..\..\Program Files(x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\ReferenceAssembles\Microsoft\Framework\MonoAndroid\v1.0\Facades\System.Text.Encoding.CodePages.dll
正如你从他们的文章中看到的,没有提到system.refelection,所以我只能估计它的一个,我的标准项目中的nuget,下面是我的standard.csproj
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="2.0.2" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="2.0.2" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="2.0.2" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="2.0.2" />
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="2.0.1" />
</ItemGroup>
<ItemGroup>
<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.2" />
</ItemGroup>
</Project>
netstandard2.0
我得到的错误如下,现在我尝试添加system.reflection的nuget,但仍然没有乐趣
编辑1
下面的建议有点帮助,但现在我被这个错误所困扰
严重性代码说明项目文件行抑制状态
命令“dotnet”exec--runtimeconfig出错
“C:\Work\xxxApp\xxxlapi\bin\Release\netcoreapp2.0\fuelapi.runtimeconfig.json”
--depsfile“C:\Work\fxxapp\xxxlApis\bin\Release\netcoreapp2.0\xxxApis.deps.json”
“C:\程序
文件\dotnet\sdk\NuGetFallbackFolder\microsoft.aspnetcore.mvc.razor.viewcomilation\2.0.3\build\netstandard2.0\microsoft.aspnetcore.mvc.razor.viewcomilation.dll“
@“obj\Release\netcoreapp2.0\microsoft.aspnetcore.mvc.razor.viewcomilation.rsp”
已退出,代码为1。XXXL0
您在第一个项目中使用了错误版本的EF工具,它看起来像1.0预览版本,应该是:
<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.*" />
我还想删除这一部分:
<ItemGroup>
<Reference Include="System.Text.Encoding.CodePages">
<HintPath>..\..\..\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\ReferenceAssemblies\Microsoft\Framework\MonoAndroid\v1.0\Facades\System.Text.Encoding.CodePages.dll</HintPath>
</Reference>
..\..\..\Program Files(x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\ReferenceAssembles\Microsoft\Framework\MonoAndroid\v1.0\Facades\System.Text.Encoding.CodePages.dll
我认为你不需要这个,尤其是提示路径部分。我会尝试将其全部删除您可以尝试使用dotnet cli发布吗
dotnet publish-c Release-r win7_x64--自包含的
之类的帮助,但我面临一个新的.net核心错误希望这比这个更稳定tbhI必须添加这个在iis express中工作良好这是奇怪的部分请参见上面的编辑2