【问题标题】:How to fix 'The type name could not be found' after upgrading an ASP.NET project from .NET Core 3.0 to 3.1?将 ASP.NET 项目从 .NET Core 3.0 升级到 3.1 后如何修复“找不到类型名称”?
【发布时间】: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 改回 &lt;TargetFramework&gt;netcoreapp3.0&lt;/TargetFramework&gt; 一切正常。

【问题讨论】:

标签: asp.net-core .net-core asp.net-core-mvc


【解决方案1】:

我已经单独安装了 .NET Core 3.1.102 SDK。卸载它并回退到 Visual Studio Build Tools 2019 附带的版本解决了这个问题。

【讨论】:

    【解决方案2】:

    我在使用 Visual Studio 2019 创建新的 .NET 5.0 类库项目时遇到了这个问题。解决方案:安装 Microsoft 发布的 System.Security.Permissions nuget 包。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-13
      • 2020-03-20
      • 1970-01-01
      • 2020-01-29
      • 2021-10-24
      相关资源
      最近更新 更多