V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Famio
V2EX  ›  程序员

.net core 1.1 项目如何编译到 exe?

  •  
  •   Famio · 2017-02-07 21:11:15 +08:00 · 6461 次点击
    这是一个创建于 2831 天前的主题,其中的信息可能已经有所发展或是发生改变。
    以前 1.0 的时候都是在项目路径下修改 projects.json 里面的 runtime 参数。
    现在 1.1 MS 弃用 projects.json 了,用回 projects.csproj 了!
    懵逼,官方文档还是 1.0 时代,现在不知道怎么改才能把 dotnet 项目编译到 exe 了,有没有大神告知下。
    19 条回复    2017-02-08 17:49:28 +08:00
    loqixh
        1
    loqixh  
       2017-02-07 22:06:51 +08:00
    <TargetFramework>netcoreapp1.1</TargetFramework>
    下加入一行
    <RuntimeIdentifiers>win10-x64;ubuntu.14.04-x64</RuntimeIdentifiers>
    然后用 dotnet publish -r ubuntu.14.04-x64
    但是会出错。。用 vs 带的发布功能也也会出错,应该是这个功能现在还有问题
    itfanr
        2
    itfanr  
       2017-02-07 22:36:10 +08:00 via Android
    微软总是在变…
    Famio
        3
    Famio  
    OP
       2017-02-07 22:40:56 +08:00
    @loqixh 是啊,我也看到了 RID 的字段,但是同样的,用 VS 和 VS code 都无法正确发布。
    奇了怪,按理说宇宙 IDE 不会犯这种错才对。现在跑程序只能 dotnet run 命令有点中二。
    emric
        4
    emric  
       2017-02-07 22:46:55 +08:00
    我也在关注这个问题。
    imcxy
        5
    imcxy  
       2017-02-07 22:57:20 +08:00   ❤️ 1
    @itfanr 说反了,其实是世界变太快,半年后某种东西完全没人跟了,微软只是保持跟上~
    beginor
        6
    beginor  
       2017-02-07 23:01:32 +08:00 via Android
    正准备入坑呢
    XiaoFaye
        7
    XiaoFaye  
       2017-02-08 02:49:49 +08:00
    .net core 没有 exe ,只有 dll , dll 之间的分别只是带不带入口函数而已。
    Soar360
        8
    Soar360  
       2017-02-08 02:50:54 +08:00
    need run time ..
    Famio
        9
    Famio  
    OP
       2017-02-08 07:41:17 +08:00
    @XiaoFaye 不是,很肯定是有的。以 standalone 方式打包就行,以前都 OK 的,自从玩了 vs2017 ,这配置文件改了,也没地方说明其中的字段含义。
    XiaoFaye
        10
    XiaoFaye  
       2017-02-08 08:44:31 +08:00
    @Famio RC2 的时候是有的,后来取消了。另外建议使用 LTS 的版本。
    imbushuo
        11
    imbushuo  
       2017-02-08 09:14:30 +08:00
    说来如果只需要针对 Windows 的话写 net462 的 target 就行了(JTL
    loqixh
        12
    loqixh  
       2017-02-08 09:27:17 +08:00
    @Famio 可以先用 preview2 的 1.1sdk ,用的是 projects.json 可以正常发布
    Famio
        13
    Famio  
    OP
       2017-02-08 09:36:20 +08:00
    @imbushuo 是的,没错,其实只针对 windows 的话,我直接用 C#写 console app 就好了。可是我需要跨平台才会用.net core.

    @loqixh 今天 vs2017 更新了,其中提到了 MSBuild 更新,我先跑完试试看吧,实在不想换环境,太麻烦了。
    weiceshi
        14
    weiceshi  
       2017-02-08 10:06:00 +08:00 via Android
    @itfanr 一行配置文件的事情也算改吗? vs17 打开 vs2003 写的.net 代码都能直接编译,这种级别的向下兼容
    水果呢? swift 2 2.3 3 4? os 升个小版本一大堆程序挂掉?
    loqixh
        15
    loqixh  
       2017-02-08 10:31:25 +08:00
    @Famio 刚试了下 是用法不对

    dotnet restore -r ubuntu.14.04-x64

    dotnet publish -r ubuntu.14.04-x64
    就正常发布了
    Famio
        16
    Famio  
    OP
       2017-02-08 11:06:36 +08:00
    @loqixh 我在 linux 下没有 dotnet restore -r 指令哇, help 了一下也没有相关的 runtime 参数。
    loqixh
        17
    loqixh  
       2017-02-08 12:55:44 +08:00
    loqixh
        18
    loqixh  
       2017-02-08 12:56:37 +08:00
    <RuntimeIdentifiers>win10-x64;ubuntu.14.04-x64</RuntimeIdentifiers> 也不是必须的
    itfanr
        19
    itfanr  
       2017-02-08 17:49:28 +08:00 via Android
    @weiceshi 苹果自从有了 swift ,被骂的不行
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2583 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 01:37 · PVG 09:37 · LAX 17:37 · JFK 20:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.