我想为包装标准Sql Client类的Sql Server创建数据小数据访问库,并将其发布到NuGet。我想在标准和.Net核心应用程序中使用这个NuGet包。
我创建了带有一些数据访问代码的类库项目(它使用System,System.Core和System.Data)并将其发布到nugget。我已将System,System.Core和System.Data添加为NuGet框架依赖项。
UPDATE - described problems both in RC1 and RC2
在RC1版本中,它适用于4.6框架,但我必须从package.json中删除DNX 5.
在RC2版本中,它适用于ASPNET Core(.Net Framework)项目,但是当我创建ASPNET Core(.Net Core)时,编译失败:
错误NU1002依赖项不支持框架.NETCoreApp,Version = v1.0。
有没有办法创建适用于这两个版本的nugget包?
答案 0 :(得分:1)
由于.NET Core 1.0本周刚刚发布,我将在最新版本的框架中回答这个问题。
如果您尝试同时定位ASP.NET Core 1.0和.NET 4.5,则必须单独定义两个框架,包括每个框架构建所需的所有依赖项。
以下是针对.NET Core Standard 1.5,ASP.NET Core 1.0,.NET 4.5和.NET 4.0的类库项目的示例project.json文件,并且依赖于System.Linq.Expressions命名空间:
{
"version": "1.0.0-*",
"frameworks": {
"netstandard1.5": {
"imports": "dnxcore50",
"dependencies": {
"NETStandard.Library": "1.6.0",
"System.Linq.Expressions": "4.1.0"
}
},
"netcoreapp1.0": {
"imports": "dnxcore50",
"dependencies": {
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.0.0"
},
"System.Linq.Expressions": "4.1.0"
}
},
"net45": {
"frameworkAssemblies": {
"System.Linq.Expressions": ""
}
},
"net40": {}
}
}
答案 1 :(得分:0)
使用Visual Studio 2017,您可以创建.NET Standard项目库。您可以在项目属性中选择版本。
这样的项目如下:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard1.4</TargetFramework>
<AssemblyName>MyAssembly</AssemblyName>
<PackageId>MyPackage</PackageId>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
<Copyright>Copyright</Copyright>
<Description>Simple Library</Description>
<Authors>Me</Authors>
<AssemblyVersion>1.1.0</AssemblyVersion>
<FileVersion>1.1.0</FileVersion>
<Version>1.1.0</Version>
<Company>MyCompany</Company>
</PropertyGroup>
<ItemGroup>
<Folder Include="Properties\" />
</ItemGroup>
</Project>
在IDE中,右键单击菜单上有pack命令,或者您可以输入:
msbuild /t:pack myproject.csproj
只有一个包......统治他们所有人......:)