如何将 visual c++ + Windows 窗体应用程序 打包 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
请不要在回答技术问题时复制粘贴 AI 生成的内容
lskjdfgl

如何将 visual c++ + Windows 窗体应用程序 打包

  •  
  •   lskjdfgl Jan 2, 2024 2764 views
    This topic created in 848 days ago, the information mentioned may be changed or developed.
    程序是:visual c++ + Windows 窗体应用程序
    需求:在项目打包的时候将.net framework 的运行时信息一起打包
    期待:将程序复制到没有 .net framework 的电脑上也可以直接运行,不用先安装 .net framework, 似于 .Net Core 的独立发布。

    请问我该如何实现这样的功能
    Supplement 1    Jan 2, 2024

    20240102112551

    18 replies    2024-01-02 15:14:14 +08:00
    ShadowPower
       
    ShadowPower  
       Jan 2, 2024
    静态链接
    编译选项/MT
    lskjdfgl
        2
    lskjdfgl  
    OP
       Jan 2, 2024
    @ShadowPower 好像不行,生成后还是只有一个 exe 没有其他的 dll ,在没有 .net framework 的系统上还是提示:

    若要运行此应用程序,您必须首先安装 .NET Framework 的以下版本之一:

    v4.0.30319
    ShadowPower
        3
    ShadowPower  
       Jan 2, 2024
    那是 C#程序吧……
    .NET Framework 4.0 的话,无解
    lonewolfakela
        4
    lonewolfakela  
       Jan 2, 2024
    visual c++ Windows 窗体应用程序运行时是不需要.net framework 的,你最好先研究清楚是不是搞错了啥……
    nuk
        5
    nuk  
       Jan 2, 2024
    publish 的时候自包含不行么
    tool2d
        6
    tool2d  
       Jan 2, 2024
    vc 似乎可以混合编程,就是一部分用 c#,另外一部分用 c++,对新手很容易搞混。

    如何可以的话,考虑让 gpt 把 c#代码转换成 c++,就可以用一楼的方法解决了。
    tsanie
        7
    tsanie  
       Jan 2, 2024
    或者可以选择.net core ,然后 publish 成 self-contained 的
    ysc3839
        8
    ysc3839  
       Jan 2, 2024 via Android
    你先截图看看是 C++还是 C#吧
    zsxzy
        9
    zsxzy  
       Jan 2, 2024
    nsis
    Cloutain
        10
    Cloutain  
       Jan 2, 2024
    VC 程序还是.NET 程序都搞不清?或者是 VC 程序引用了.NET 的库?
    lskjdfgl
        11
    lskjdfgl  
    OP
       Jan 2, 2024
    @lonewolfakela 项目有 vc++ 和 .net
    ![20240102112551]( https://i2.100024.xyz/2024/01/02/imq6i3.webp)
    lskjdfgl
        12
    lskjdfgl  
    OP
       Jan 2, 2024
    @ysc3839 @Cloutain 已追加截图
    @tsanie @nuk 不是新建的 c#项目不能使用 .net core 和 publish
    cnbatch
        13
    cnbatch  
       Jan 2, 2024
    混合编程?可能无解,纯 C# 可以主动更改引用的 .NET Framework DLL ,已经有人试过可行:
    https://www.yycoding.xyz/post/2023/9/21/publish-dotnet-windows-application-into-a-single-file-executables

    对于混合编程的话,那就复杂多了。可以尝试把调用到的 DLL 全部复制到程序当前目录,但我也不知道是否可行。
    ByteRan
        14
    ByteRan  
       Jan 2, 2024
    再写一个项目,用于检测是否安装了.net framework ,如果没安装则,释放.net framework 安装文件,如果安装了,则释放项目安装文件
    chinadch
        15
    chinadch  
       Jan 2, 2024 via iPhone
    nsis 创建安装程序,知乎上有流程
    hahiru
        16
    hahiru  
       Jan 2, 2024
    !安装必看.txt
    Golor
        17
    Golor  
       Jan 2, 2024
    可以用 InnoSetup 打包程序,在 iss 脚本中进行判断是否安装.net freamwork ,若没有安装则进行安装。
    lskjdfgl
        18
    lskjdfgl  
    OP
       Jan 2, 2024
    @tanranran @Golor 谢谢 使用了 vs2010 自带的 visual studio installer 实现了安装前先检查有没有.net framework 环境,没有的话,就先安装.net framework ,安装后再复制程序文件。
    About     Help     Advertise     Blog     API     FAQ     Solana     1168 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 49ms UTC 18:08 PVG 02:08 LAX 11:08 JFK 14:08
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86