类型 'Nullable<>' 在未引用的程序集中定义
The type 'Nullable<>' is defined in an assembly that is not referenced
我创建了一个 Class 库和 NuGet 包,以便共享代码来访问我们的 API。 (这是我第一次尝试这些)。 Class 库是使用 .NetStandard 创建的。我在 Visual Studio 2019 年使用了“打包”功能来创建 NuGet 包。我已将软件包安装在一个新的空白应用程序中进行测试。在我尝试在视图中使用模型之前,它似乎一切正常。我首先在 Telerik 网格中尝试了它:
@(Html.Kendo().Grid<iCANMVCSDK.Entities.Employee>()
.Name("employeeGrid")
.Columns(columns =>
{
columns.Bound(c => c.EmployeeCompanyId);
})
)
我立即收到错误:
“类型 'Nullable<>' 在未引用的程序集中定义。您必须添加对程序集 'netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' 的引用。1_Views_Home_Index.cshtml”
然后我尝试将模型直接放在视图上:
@using iCANMVCSDK;
@model IEnumerable<iCANMVCSDK.Entities.Employee>
@{
ViewBag.Title = "Home Page";
}
我收到同样的错误。我确实将 .NetStandard 添加到项目中,但我仍然遇到相同的错误。我假设在打包之前我需要在 Class 库中做一些事情,但我不知道是什么。
这就是我的 Class 图书馆项目的样子。我不确定任何人需要看到什么才能帮助我。
这是项目 XML:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup Label="Globals">
<SccProjectName>SAK</SccProjectName>
<SccProvider>SAK</SccProvider>
<SccAuxPath>SAK</SccAuxPath>
<SccLocalPath>SAK</SccLocalPath>
</PropertyGroup>
<PropertyGroup>
<TargetFrameworks>netstandard2.0</TargetFrameworks>
<Authors>Rani Radcliff</Authors>
<Company>iCan</Company>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<Description>The client library that enables sharing and retrieving data with iCan Web Api</Description>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies" Version="1.0.2">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies.net472" Version="1.0.2">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
<PackageReference Include="System.ComponentModel.Annotations" Version="5.0.0" />
</ItemGroup>
</Project>
我不确定为什么,因为我不得不在 MVC 应用程序的 web.config 文件中手动添加对 netstandard 库的引用:
<compilation debug="true" targetFramework="4.7.2">
<assemblies>
<add assembly="netstandard, Version=2.0.3.0, Culture=neutral,
PublicKeyToken=cc7b13ffcd2ddd51"/>
</assemblies>
</compilation>
我创建了一个 Class 库和 NuGet 包,以便共享代码来访问我们的 API。 (这是我第一次尝试这些)。 Class 库是使用 .NetStandard 创建的。我在 Visual Studio 2019 年使用了“打包”功能来创建 NuGet 包。我已将软件包安装在一个新的空白应用程序中进行测试。在我尝试在视图中使用模型之前,它似乎一切正常。我首先在 Telerik 网格中尝试了它:
@(Html.Kendo().Grid<iCANMVCSDK.Entities.Employee>()
.Name("employeeGrid")
.Columns(columns =>
{
columns.Bound(c => c.EmployeeCompanyId);
})
)
我立即收到错误:
“类型 'Nullable<>' 在未引用的程序集中定义。您必须添加对程序集 'netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' 的引用。1_Views_Home_Index.cshtml”
然后我尝试将模型直接放在视图上:
@using iCANMVCSDK;
@model IEnumerable<iCANMVCSDK.Entities.Employee>
@{
ViewBag.Title = "Home Page";
}
我收到同样的错误。我确实将 .NetStandard 添加到项目中,但我仍然遇到相同的错误。我假设在打包之前我需要在 Class 库中做一些事情,但我不知道是什么。
这就是我的 Class 图书馆项目的样子。我不确定任何人需要看到什么才能帮助我。
这是项目 XML:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup Label="Globals">
<SccProjectName>SAK</SccProjectName>
<SccProvider>SAK</SccProvider>
<SccAuxPath>SAK</SccAuxPath>
<SccLocalPath>SAK</SccLocalPath>
</PropertyGroup>
<PropertyGroup>
<TargetFrameworks>netstandard2.0</TargetFrameworks>
<Authors>Rani Radcliff</Authors>
<Company>iCan</Company>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<Description>The client library that enables sharing and retrieving data with iCan Web Api</Description>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies" Version="1.0.2">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies.net472" Version="1.0.2">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
<PackageReference Include="System.ComponentModel.Annotations" Version="5.0.0" />
</ItemGroup>
</Project>
我不确定为什么,因为我不得不在 MVC 应用程序的 web.config 文件中手动添加对 netstandard 库的引用:
<compilation debug="true" targetFramework="4.7.2">
<assemblies>
<add assembly="netstandard, Version=2.0.3.0, Culture=neutral,
PublicKeyToken=cc7b13ffcd2ddd51"/>
</assemblies>
</compilation>