首页新闻找找看学习计划

target framework 为 .net 45 的项目,可以在 Linux 系统下编译吗?

0
悬赏园豆:100 [已解决问题] 解决于 2019-06-05 15:09

Target Framework 为 .net framework 4.5 的项目,可以不可以在 Linux 下 build, 和 运行 dotnet pack?

BUTTERAPPLE的主页 BUTTERAPPLE | 老鸟四级 | 园豆:2948
提问于:2019-05-22 22:58
< >
分享
最佳答案
1

答案是可以的,哈哈。微软在Nuget针对这个专门发布了一个Nuget包,想要查看详细 Issue 的可以在这里查看 https://github.com/dotnet/designs/pull/33

Nuget上面包的地址为: https://www.nuget.org/packages/Microsoft.NETFramework.ReferenceAssemblies/1.0.0-preview.2

只需要在你的csproj 文件中修改添加如下即可:

<PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies"
                  Version="1.0.0-preview.1" 
                  PrivateAssets="All" />

已在服务器上测试过:具体csporj 配置可以参考 https://github.com/aliyun/aliyun-openapi-net-sdk/blob/master/aliyun-net-sdk-core/aliyun-net-sdk-core.vs2017.csproj

BUTTERAPPLE | 老鸟四级 |园豆:2948 | 2019-06-05 15:08

为了支持 linux ,微软真是用心良苦啊

dudu | 园豆:39326 (高人七级) | 2019-06-05 15:50

@dudu: 今天看了看 .NET 5.0 的 Roadmap 和规划,看来他们已经在着手开始实践了。

BUTTERAPPLE | 园豆:2948 (老鸟四级) | 2019-06-05 15:55
其他回答(3)
0

可以,甚至直接运行。
运气好不需要改代码,运气不好要改部分代码,很明显win32标记的基本上要去掉,其他的接口有部分不同或不支持。

收获园豆:45
花飘水流兮 | 园豆:10746 (专家六级) | 2019-05-22 23:03
0

Target framework 为什么不直接使用 netstandard1.1 (.NET Framework 4.5)或者 netstandard1.2 (.NET Framework 4.5.1)?使用了 .net standard ,在 linux 上就可以用 .net core 生成并打包

收获园豆:45
dudu | 园豆:39326 (高人七级) | 2019-05-23 07:43
0

不行,framework只能在windows上使用msbuild工具进行编译。

linux上的dotnet build和dotnet msbuild,dotnet pack 只能打包netstandard、netcore项目。

收获园豆:10
czd890 | 园豆:8508 (大侠五级) | 2019-05-23 16:50
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册