一、创建项目
①、创建类库项目
②、修改类库csproj文件
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFrameworks>NET47;netcoreapp3.1</TargetFrameworks> </PropertyGroup> </Project>
③、保存重新加载项目
④、安装阿里云包【官方:Aliyun.OSS.SDK.NetCore,不支持Framework】
⑤、实现功能【直接从阿里云粘贴复制过来】
二、不同库、版本库存在问题
①、使用HttpUtility【仅支持Framework引用】
解决:
<!--仅Net45、NET47引用该库--> <ItemGroup Condition=" '$(TargetFramework)' == 'net45' Or '$(TargetFramework)'== 'net47' "> <Reference Include="System.Web" /> </ItemGroup>
②、使用Bitmap
解决:
查看引用,是默认使用4.7的库,netstandard、netcore不支持
找到库NuGet,当前版本支持netcore、netstandard
修改csproj添加引用
<!--netcore、netstandard指定引用版本--> <ItemGroup Condition=" '$(TargetFramework)' == 'netstandard2.0' Or '$(TargetFramework)'== 'netcoreapp3.1' "> <PackageReference Include="System.Drawing.Common" Version="5.0.2" /> </ItemGroup>
已经生成不同版本的库
三、使用生成库
①、创建framework、netcore项目
②、引用对应库【netcore:netstandard、netcore,framework:对应版本】
framework版本
netcore版本
netstandard 版本
将3个项目写入相同代码【不同版本保存文件名不同】:
static void Main(string[] args) { StorageAliyun storage = new StorageAliyun(); //framework storage.ResumableDownloadObject("bucket", "电脑信息.txt", @"E:StorageObjectframework_电脑信息.txt", @"E:StorageObjectframework_电脑信息.txt"); //netcore storage.ResumableDownloadObject("bucket", "电脑信息.txt", @"E:StorageObjectnetcore_电脑信息.txt", @"E:StorageObject etcore_电脑信息.txt"); //netstandard storage.ResumableDownloadObject("bucket", "电脑信息.txt", @"E:StorageObjectnetstd_电脑信息.txt", @"E:StorageObject etstd_电脑信息.txt"); }
③、下载文件【我将阿里云文件下到本地】
将3个项目设置成同时启动
启动项目:
下载结果:
解决netcore、netstandard缺少库问题【确实没有生成】:
打开csproj添加如下配置:
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'"> <CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies> </PropertyGroup>
重新生成:
把netcore、netstandard项目,添加Aliyun.OSS引用:
下载结果:
查看下载文件:
四、最后
①、附上源码地址