C# nuget软件包的目标框架注意事项?
我对创建NuGet包的过程相当陌生。我最近通过NuGetPackageExplorer创建了一个NuGet包。“Package Metadata”视图有一个值为“Microsoft.CSharp(Any,Verion=0.0)”的“Framework Assembly References”部分。这是nuspec文件的外观:C# nuget软件包的目标框架注意事项?,c#,.net,asp.net-mvc,nuget,C#,.net,Asp.net Mvc,Nuget,我对创建NuGet包的过程相当陌生。我最近通过NuGetPackageExplorer创建了一个NuGet包。“Package Metadata”视图有一个值为“Microsoft.CSharp(Any,Verion=0.0)”的“Framework Assembly References”部分。这是nuspec文件的外观: <?xml version="1.0" encoding="utf-8"?> <package xmlns="http://schemas.microso
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata>
<id>My.Cool.NuGet.Package</id>
<version>1.0.2</version>
<title></title>
<authors>John Smith</authors>
<owners>John Smith</owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>My cool NuGet package</description>
<frameworkAssemblies>
<frameworkAssembly assemblyName="Microsoft.CSharp" />
</frameworkAssemblies>
</metadata>
</package>
我的.Cool.NuGet.Package
1.0.2
约翰·史密斯
约翰·史密斯
假的
我的酷NuGet套装
请解释以下维度的关系、依赖关系和约束:
- NuGet包的源.NET项目的目标框架版本
- nuspec文件的FrameworkAssembly部分
- 安装NuGet包的项目的目标框架版本
- NuGet软件包显示为已安装,并显示在引用列表中
- 我能够将using指令添加到NuGet包的名称空间中
但是,当我尝试运行应用程序时,编译器显示了一个错误,即这些using指令的“未找到命名空间类型”。但是编译器错误消失了,但应用程序不会运行以前编译器错误的b/c。在我对MVC项目和NuGet软件包源项目的版本设置进行了修改之后,我能够绕过这个错误。因此,现在我试图了解关于目标框架需要考虑和配置的更精细的细节。
NuGET包的源项目的TrameFamework应该是安装它的项目所需要的最低框架版本。例如,如果您知道将有4.5和4.6框架中的项目,那么您将为包4.5创建源代码。您还可以将多个框架的多个构建放在一个包中。这是关于这一点的最新消息
安装包的项目的TargetFramework应大于或等于包的版本。因为框架的高版本与低版本兼容。它不应允许您安装不支持您在项目中使用的框架的软件包 FrameworkAssemblys部分仅定义包正在使用的框架程序集,以便自动添加引用。有关更多详细信息,请查看