Skip to content

Commit 98589da

Browse files
authored
Merge pull request #799 from corob-msft/cr-ucrt-deployment
Add topic and links for UCRT deployment
2 parents 2f9ac8f + 37b09db commit 98589da

File tree

5 files changed

+137
-70
lines changed

5 files changed

+137
-70
lines changed

docs/ide/TOC.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@
7171
## [Understanding the Dependencies of a Visual C++ Application](understanding-the-dependencies-of-a-visual-cpp-application.md)
7272
## [Determining Which DLLs to Redistribute](determining-which-dlls-to-redistribute.md)
7373
## [Choosing a Deployment Method](choosing-a-deployment-method.md)
74+
## [Universal CRT deployment](universal-crt-deployment.md)
7475
## [Redistributing Visual C++ Files](redistributing-visual-cpp-files.md)
7576
### [Redistributing Components By Using Merge Modules](redistributing-components-by-using-merge-modules.md)
7677
### [Redistributing Visual C++ ActiveX Controls](redistributing-visual-cpp-activex-controls.md)
Lines changed: 43 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: "Deploying Native Desktop Applications (Visual C++) | Microsoft Docs"
33
ms.custom: ""
4-
ms.date: "11/04/2016"
4+
ms.date: "05/11/2018"
55
ms.technology: ["cpp-ide"]
66
ms.topic: "conceptual"
77
dev_langs: ["C++"]
@@ -12,40 +12,45 @@ ms.author: "mblome"
1212
ms.workload: ["cplusplus"]
1313
---
1414
# Deploying Native Desktop Applications (Visual C++)
15-
Deployment is the process by which you distribute a finished application or component to be installed on other computers. Deployment planning starts when an application is created on a developer's computer. Deployment ends when the application is installed and ready to run on a user's computer.
16-
17-
Visual Studio provides different technologies for deploying Windows applications. These include ClickOnce deployment and Windows Installer deployment.
18-
19-
- ClickOnce can be used to deploy C++ applications that target the common language runtime (CLR)—mixed, pure, and verifiable assemblies. Although you can use Windows Installer to deploy a managed application, we recommend that you use ClickOnce because it takes advantage of .NET Framework security features such as manifest signing. ClickOnce does not support deployment of native C++ applications. For more information, see [ClickOnce Deployment for Visual C++ Applications](../ide/clickonce-deployment-for-visual-cpp-applications.md).
20-
21-
- Windows Installer technology can be used to deploy either native C++ applications or C++ applications that target the CLR.
22-
23-
The articles in this section of the documentation discuss how to ensure that a native Visual C++ application runs on any computer that provides a supported target platform, which files you must include in an installation package, and the recommended ways to redistribute the components that your application depends on.
24-
25-
## In This Section
26-
[Deployment in Visual C++](../ide/deployment-in-visual-cpp.md)
27-
28-
[Deployment Concepts](../ide/deployment-concepts.md)
29-
30-
[Understanding the Dependencies of a Visual C++ Application](../ide/understanding-the-dependencies-of-a-visual-cpp-application.md)
31-
32-
[Determining Which DLLs to Redistribute](../ide/determining-which-dlls-to-redistribute.md)
33-
34-
[Choosing a Deployment Method](../ide/choosing-a-deployment-method.md)
35-
36-
[Redistributing Visual C++ Files](../ide/redistributing-visual-cpp-files.md)
37-
38-
[Deployment Examples](../ide/deployment-examples.md)
39-
40-
[Redistributing Web Client Applications](../ide/redistributing-web-client-applications.md)
41-
42-
[ClickOnce Deployment for Visual C++ Applications](../ide/clickonce-deployment-for-visual-cpp-applications.md)
43-
44-
[Running a C++ /clr Application on a Previous Runtime Version](../ide/running-a-cpp-clr-application-on-a-previous-runtime-version.md)
45-
46-
## Related Sections
47-
[Building C/C++ Isolated Applications and Side-by-side Assemblies](../build/building-c-cpp-isolated-applications-and-side-by-side-assemblies.md)
48-
49-
[Deployment](/dotnet/framework/deployment/index)
50-
51-
[Troubleshooting C/C++ Isolated Applications and Side-by-side Assemblies](../build/troubleshooting-c-cpp-isolated-applications-and-side-by-side-assemblies.md)
15+
16+
Deployment is the process by which you distribute a finished application or component to be installed on other computers. Deployment planning starts when an application is created on a developer's computer. Deployment ends when the application is installed and ready to run on a user's computer.
17+
18+
Visual Studio provides different technologies for deploying Windows applications. These include ClickOnce deployment and Windows Installer deployment.
19+
20+
- ClickOnce can be used to deploy C++ applications that target the common language runtime (CLR)—mixed, pure, and verifiable assemblies. Although you can use Windows Installer to deploy a managed application, we recommend that you use ClickOnce because it takes advantage of .NET Framework security features such as manifest signing. ClickOnce does not support deployment of native C++ applications. For more information, see [ClickOnce Deployment for Visual C++ Applications](../ide/clickonce-deployment-for-visual-cpp-applications.md).
21+
22+
- Windows Installer technology can be used to deploy either native C++ applications or C++ applications that target the CLR.
23+
24+
The articles in this section of the documentation discuss how to ensure that a native Visual C++ application runs on any computer that provides a supported target platform, which files you must include in an installation package, and the recommended ways to redistribute the components that your application depends on.
25+
26+
## In This Section
27+
28+
- [Deployment in Visual C++](../ide/deployment-in-visual-cpp.md)
29+
30+
- [Deployment Concepts](../ide/deployment-concepts.md)
31+
32+
- [Understanding the Dependencies of a Visual C++ Application](../ide/understanding-the-dependencies-of-a-visual-cpp-application.md)
33+
34+
- [Determining Which DLLs to Redistribute](../ide/determining-which-dlls-to-redistribute.md)
35+
36+
- [Choosing a Deployment Method](../ide/choosing-a-deployment-method.md)
37+
38+
- [Universal CRT deployment](universal-crt-deployment.md).
39+
40+
- [Redistributing Visual C++ Files](../ide/redistributing-visual-cpp-files.md)
41+
42+
- [Deployment Examples](../ide/deployment-examples.md)
43+
44+
- [Redistributing Web Client Applications](../ide/redistributing-web-client-applications.md)
45+
46+
- [ClickOnce Deployment for Visual C++ Applications](../ide/clickonce-deployment-for-visual-cpp-applications.md)
47+
48+
- [Running a C++ /clr Application on a Previous Runtime Version](../ide/running-a-cpp-clr-application-on-a-previous-runtime-version.md)
49+
50+
## Related Sections
51+
52+
- [Building C/C++ Isolated Applications and Side-by-side Assemblies](../build/building-c-cpp-isolated-applications-and-side-by-side-assemblies.md)
53+
54+
- [Deployment](/dotnet/framework/deployment/index)
55+
56+
- [Troubleshooting C/C++ Isolated Applications and Side-by-side Assemblies](../build/troubleshooting-c-cpp-isolated-applications-and-side-by-side-assemblies.md)

docs/ide/deployment-concepts.md

Lines changed: 36 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -12,32 +12,39 @@ ms.author: "corob"
1212
ms.workload: ["cplusplus"]
1313
---
1414
# Deployment Concepts
15-
This section discusses the main considerations for deploying C++ applications.
16-
17-
## Windows Installer Deployment in C++
18-
Visual C++ projects typically use the traditional Windows Installer setup for deployment. To prepare a Windows Installer deployment, you package your application in a setup.exe file and distribute that file, together with an installer package (.msi). Users then run setup.exe to install your application.
19-
20-
You package your application by adding a Setup project to your solution; when built, it creates the setup and installer package files that you distribute to users. For more information, see [Choosing a Deployment Method](../ide/choosing-a-deployment-method.md).
21-
22-
## Library Dependencies
23-
When a C/C++ application is built using functionality provided by the Visual C++ libraries, it becomes dependent on the presence of those libraries at runtime. In order for the application to run, it must link, either statically or dynamically, to the necessary Visual C++ libraries. If an application dynamically links to a Visual C++ library, then when it runs that library must be present so it can be loaded. On the other hand, if the application statically links to a Visual C++ library, then it does not need the corresponding DLLs to be present on the user's computer. Static linking, however, has some negative effects, such as the increasing the size of the application files, and making maintenance potentially more difficult. For more information, see [Advantages of using DLLs](../build/dlls-in-visual-cpp.md#advantages-of-using-dlls).
24-
25-
## Packaging and Redistributing
26-
Visual C++ libraries are packaged as DLLs, and all necessary libraries for C/C++ applications are installed by Visual Studio on the developer's computer. However, when deploying your application to your users, it is not feasible in most cases to require them to install Visual Studio in order to run your application. It is important to be able to redistribute just the parts of Visual C++ that are required by your application to run correctly.
27-
28-
For more information about packaging and redistributing, see the following topics:
29-
30-
- [Determining Which DLLs to Redistribute](../ide/determining-which-dlls-to-redistribute.md).
31-
32-
- [Choosing a Deployment Method](../ide/choosing-a-deployment-method.md).
33-
34-
For deployment examples and suggestions about troubleshooting, see:
35-
36-
- [Deployment Examples](../ide/deployment-examples.md).
37-
38-
- [Troubleshooting C/C++ Isolated Applications and Side-by-side Assemblies](../build/troubleshooting-c-cpp-isolated-applications-and-side-by-side-assemblies.md).
39-
40-
## See Also
41-
[Deploying Desktop Applications](../ide/deploying-native-desktop-applications-visual-cpp.md)
42-
[Understanding the Dependencies of a Visual C++ Application](../ide/understanding-the-dependencies-of-a-visual-cpp-application.md)
43-
[Windows Installer Deployment](http://msdn.microsoft.com/en-us/121be21b-b916-43e2-8f10-8b080516d2a0)
15+
16+
This section discusses the main considerations for deploying C++ applications.
17+
18+
## Windows Installer Deployment in C++
19+
20+
Visual C++ projects typically use the traditional Windows Installer setup for deployment. To prepare a Windows Installer deployment, you package your application in a setup.exe file and distribute that file, together with an installer package (.msi). Users then run setup.exe to install your application.
21+
22+
You package your application by adding a Setup project to your solution; when built, it creates the setup and installer package files that you distribute to users. For more information, see [Choosing a Deployment Method](../ide/choosing-a-deployment-method.md).
23+
24+
## Library Dependencies
25+
26+
When a C/C++ application is built using functionality provided by the Visual C++ libraries, it becomes dependent on the presence of those libraries at runtime. In order for the application to run, it must link, either statically or dynamically, to the necessary Visual C++ libraries. If an application dynamically links to a Visual C++ library, then when it runs that library must be present so it can be loaded. On the other hand, if the application statically links to a Visual C++ library, then it does not need the corresponding DLLs to be present on the user's computer. Static linking, however, has some negative effects, such as the increasing the size of the application files, and making maintenance potentially more difficult. For more information, see [Advantages of using DLLs](../build/dlls-in-visual-cpp.md#advantages-of-using-dlls).
27+
28+
## Packaging and Redistributing
29+
30+
Visual C++ libraries are packaged as DLLs, and all necessary libraries for C/C++ applications are installed by Visual Studio on the developer's computer. However, when deploying your application to your users, it is not feasible in most cases to require them to install Visual Studio in order to run your application. It is important to be able to redistribute just the parts of Visual C++ that are required by your application to run correctly.
31+
32+
For more information about packaging and redistributing, see the following topics:
33+
34+
- [Determining Which DLLs to Redistribute](../ide/determining-which-dlls-to-redistribute.md).
35+
36+
- [Choosing a Deployment Method](../ide/choosing-a-deployment-method.md).
37+
38+
- [Universal CRT deployment](universal-crt-deployment.md).
39+
40+
For deployment examples and suggestions about troubleshooting, see:
41+
42+
- [Deployment Examples](../ide/deployment-examples.md).
43+
44+
- [Troubleshooting C/C++ Isolated Applications and Side-by-side Assemblies](../build/troubleshooting-c-cpp-isolated-applications-and-side-by-side-assemblies.md).
45+
46+
## See also
47+
48+
- [Deploying Desktop Applications](../ide/deploying-native-desktop-applications-visual-cpp.md)
49+
- [Understanding the Dependencies of a Visual C++ Application](../ide/understanding-the-dependencies-of-a-visual-cpp-application.md)
50+
- [Windows Installer Deployment](http://msdn.microsoft.com/en-us/121be21b-b916-43e2-8f10-8b080516d2a0)

docs/ide/deployment-in-visual-cpp.md

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: "Deployment in Visual C++ | Microsoft Docs"
33
ms.custom: ""
4-
ms.date: "03/13/2018"
4+
ms.date: "05/11/2018"
55
ms.technology: ["cpp-ide"]
66
ms.topic: "conceptual"
77
dev_langs: ["C++"]
@@ -15,6 +15,8 @@ ms.workload: ["cplusplus"]
1515

1616
Installation of your application on a computer other than your development computer is known as *deployment*. When you deploy a Visual C++ application to another computer, you must install both the application and any library files it depends on. Visual Studio enables three ways to deploy the Visual C++ libraries together with your application: *central deployment*, *local deployment*, and *static linking*. Central deployment puts the library files under the Windows directory, where the Windows Update service can update them automatically. Local deployment puts the library files in the same directory as your application. You must redeploy any locally deployed libraries yourself to update them. Static linking binds the library code into your application. You must recompile and redeploy your application to take advantage of any updates to the libraries when you use static linking.
1717

18+
In Visual Studio 2015, the Microsoft C Runtime library was refactored into version-specific local library components, and a new Universal C Runtime library that is now part of Windows. For details on deployment of the Universal CRT, see [Universal CRT deployment](universal-crt-deployment.md).
19+
1820
## Central Deployment
1921

2022
In central deployment, library DLL files are installed in the Windows\System32 directory, or for 32-bit library files on x64 systems, the Windows\SysWow64 directory. Microsoft automatically updates its libraries that are centrally deployed. For Visual C++ libraries that are locally deployed or statically linked, you must provide the updates.
@@ -47,6 +49,7 @@ In addition to dynamically linked libraries, Visual Studio supplies most of its
4749

4850
The load order of Visual C++ libraries is system-dependent. To diagnose loader issues, use depends.exe or where.exe. For more information, see [Dynamic-Link Library Search Order (Windows)](http://msdn.microsoft.com/library/windows/desktop/ms682586.aspx).
4951

50-
## See Also
52+
## See also
5153

52-
[Deploying Desktop Applications](../ide/deploying-native-desktop-applications-visual-cpp.md)
54+
- [Deploying Desktop Applications](../ide/deploying-native-desktop-applications-visual-cpp.md)
55+
- [Universal CRT deployment](universal-crt-deployment.md)

0 commit comments

Comments
 (0)