【发布时间】:2020-06-14 06:56:08
【问题描述】:
将 ASP.NET 项目从 .NET Core 3.0 升级到 .NET Core 3.1 后,尝试在生产服务器上运行 dotnet publish --release Configuration 时出现以下错误。
error CS1069: The type name 'FileIOPermission' could not be found in the namespace
'System.Security.Permissions'. This type has been forwarded to assembly
'System.Security.Permissions, Version=4.0.3.0, Culture=neutral,
PublicKeyToken=cc7b13ffcd2ddd51' Consider adding a reference to that assembly.
该项目在我的开发机器上通过 Visual Studio 2019 编译良好。
.csproj 看起来像这样(编辑规则集和一些与 T4 模板相关的 <ItemGroup>s):
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
</PropertyGroup>
...
<ItemGroup>
<PackageReference Include="dapper" Version="1.60.9" />
<PackageReference Include="dapper.sqlbuilder" Version="1.60.1" />
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.2.3" />
<PackageReference Include="System.CodeDom" Version="4.5.0" />
</ItemGroup>
...
</Project>
我在生产服务器上安装了 Visual Studio Build Tools 2017 和 2019。
将 .csproj 改回 <TargetFramework>netcoreapp3.0</TargetFramework> 一切正常。
【问题讨论】:
-
会不会是需要先安装相关的NuGet包?最新的是4.7.0版(不是4.0.3):nuget.org/packages/System.Security.Permissions/#
标签: asp.net-core .net-core asp.net-core-mvc