none
在共享 DLL 中使用 MFC,如何打包? RRS feed

  • 问题

  • 我的程序是“在共享 DLL 中使用 MFC”,

    用户的电脑没有安装mfc。

    请问我的程序应该如何打包?

    2018年5月14日 1:38

答案

  • Hi,

    感谢在MSDN论坛发帖。

    >>在共享 DLL 中使用 MFC,如何打包?

    如果选择"在共享 DLL 中使用 MFC"的话,你编译后的程序中不包含MFC库,所以文件会比较小,但是如果你的程序直接移到一个没有安装过MFC的机器上时,可能会导致找不到MFC的DLL。因为所有MFC DLL都使用C运行库(CRT)的共享版本,所以你需要重新分配CRT。而且,如果你使用的是Visual Studio 2015版本,那你同时还要附带一起使用的MFC版本使用通用CRT库,它会作为Windows 10的一部分被分发。也就是说你需要在你的打包文件中,包含vc++ redistributable package和Window 10 SDK的安装文件提供给客户安装。

    你也可以使用setup projectClickOnce技术来打包你的工程。在打包的过程中选择需要安装的vc++ redistributable package和Window 10 SDK组件,在安装你的程序的时候同时安装这些必备组件。

    希望对你有所帮助。

    Best Regards,

    Baron Bi


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    • 已标记为答案 BillQu0002 2018年5月18日 5:37
    2018年5月14日 6:34
  • Hi,

    感谢在MSDN论坛发帖。

    >>在共享 DLL 中使用 MFC,如何打包?

    如果选择"在共享 DLL 中使用 MFC"的话,你编译后的程序中不包含MFC库,所以文件会比较小,但是如果你的程序直接移到一个没有安装过MFC的机器上时,可能会导致找不到MFC的DLL。因为所有MFC DLL都使用C运行库(CRT)的共享版本,所以你需要重新分配CRT。而且,如果你使用的是Visual Studio 2015版本,那你同时还要附带一起使用的MFC版本使用通用CRT库,它会作为Windows 10的一部分被分发。也就是说你需要在你的打包文件中,包含vc++ redistributable package和Window 10 SDK的安装文件提供给客户安装。

    你也可以使用setup projectClickOnce技术来打包你的工程。在打包的过程中选择需要安装的vc++ redistributable package和Window 10 SDK组件,在安装你的程序的时候同时安装这些必备组件。

    希望对你有所帮助。

    Best Regards,

    Baron Bi


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    我是vs2017的开发环境,win10 sdk非常大,必须给用户安装吗?
    • 已标记为答案 BillQu0002 2018年5月21日 0:08
    2018年5月15日 4:33

全部回复

  • Hi,

    感谢在MSDN论坛发帖。

    >>在共享 DLL 中使用 MFC,如何打包?

    如果选择"在共享 DLL 中使用 MFC"的话,你编译后的程序中不包含MFC库,所以文件会比较小,但是如果你的程序直接移到一个没有安装过MFC的机器上时,可能会导致找不到MFC的DLL。因为所有MFC DLL都使用C运行库(CRT)的共享版本,所以你需要重新分配CRT。而且,如果你使用的是Visual Studio 2015版本,那你同时还要附带一起使用的MFC版本使用通用CRT库,它会作为Windows 10的一部分被分发。也就是说你需要在你的打包文件中,包含vc++ redistributable package和Window 10 SDK的安装文件提供给客户安装。

    你也可以使用setup projectClickOnce技术来打包你的工程。在打包的过程中选择需要安装的vc++ redistributable package和Window 10 SDK组件,在安装你的程序的时候同时安装这些必备组件。

    希望对你有所帮助。

    Best Regards,

    Baron Bi


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    • 已标记为答案 BillQu0002 2018年5月18日 5:37
    2018年5月14日 6:34
  • Hi,

    感谢在MSDN论坛发帖。

    >>在共享 DLL 中使用 MFC,如何打包?

    如果选择"在共享 DLL 中使用 MFC"的话,你编译后的程序中不包含MFC库,所以文件会比较小,但是如果你的程序直接移到一个没有安装过MFC的机器上时,可能会导致找不到MFC的DLL。因为所有MFC DLL都使用C运行库(CRT)的共享版本,所以你需要重新分配CRT。而且,如果你使用的是Visual Studio 2015版本,那你同时还要附带一起使用的MFC版本使用通用CRT库,它会作为Windows 10的一部分被分发。也就是说你需要在你的打包文件中,包含vc++ redistributable package和Window 10 SDK的安装文件提供给客户安装。

    你也可以使用setup projectClickOnce技术来打包你的工程。在打包的过程中选择需要安装的vc++ redistributable package和Window 10 SDK组件,在安装你的程序的时候同时安装这些必备组件。

    希望对你有所帮助。

    Best Regards,

    Baron Bi


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    我是vs2017的开发环境,win10 sdk非常大,必须给用户安装吗?
    • 已标记为答案 BillQu0002 2018年5月21日 0:08
    2018年5月15日 4:33
  • >>我是vs2017的开发环境,win10 sdk非常大,必须给用户安装吗?

    这个涉及到你具体用了哪些接口。如果你使用了Universal CRT的相关接口的话。是需要安装的。因为在vs2015以后,CRT被分为两部分,其中一部分包含到了Windows SDK中。具体的内容可以参考下面的文档。

    https://msdn.microsoft.com/en-us/library/abx4dbyh.aspx

    建议你保险一点的话,选择同步安装。你也可以选择在测试机上测试一下。

    Best Regards,

    Baron Bi


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2018年5月15日 7:58