Hotfix Instructions - Kentico 9 Source Code

Hotfixes allow you to fix problems in your installation of Kentico. You can view the list of fixed bugs on the Kentico DevNet portal.

To obtain source code hotfixes, please contact your Kentico sales representative.

The following instructions apply only to the source code version of Kentico. For standard installations, please see Hotfix Instructions - Kentico 9.

Note

Hotfixes are not tested for all possible scenarios, so you may experience issues after applying the hotfix.

Always backup your project files and database before applying a hotfix.

Table of Contents

Installing the hotfix

  1. Run the Hotfix_<version>_src.exe file.
  2. Go through the hotfix installation procedure.

By default, the installer places the hotfix into the C:\Program Files\Kentico\<version>\Hotfix<version> folder.

Applying the hotfix to a local project

  1. If your system stores virtual objects on the file system (due to enabled Deployment mode or source control options), return the files to the database. After you apply the hotfix, re-enable deployment mode or source control and rebuild the solution.

  2. Run Kentico Hotfix Utility (Hotfix.exe) from the location where you installed the hotfix (C:\Program Files\Kentico\<version>\Hotfix<version> folder by default).

  3. Select your project folder using the Browse button or type in the path to the project manually.

  4. Use the application to back up your project files and/or database if you have not already done so.

  5. Select which components you want to update. Click Switch to advanced mode if you wish to change the settings. We recommend updating all components.

    • Source files – all files in the source code, except for the web project in the CMS folder
    • Setup files – the Kentico installer and external utilities (which are separate from the web project)
    • SQL script – the database structure and data
    • Kentico files – the web project files in the CMS folder
  6. Choose a method of taking the project offline and back online.

  7. Click Next to start the update procedure.

  8. After the update finishes, click Next to view any problems that may have occurred and the instructions to solve them.

  9. Open the project solution in Visual Studio and follow the compilation instructions.

  10. Rebuild the solution.

For more information, see Kentico Hotfix and Upgrade Utility.

Applying the hotfix to a remote project

If you cannot access your web project directly (for example when the project is located on a remote hosting server), you can use the Hotfix Utility to create the updated file structure and then upload them to your web project location.

  1. Navigate to the location where you installed the hotfix (C:\Program Files\Kentico\<version>\Hotfix<version> folder by default).

  2. Run Hotfix.exe from the command line with the /deploy=net45app parameter.
    Example: Hotfix.exe /deploy=net45app
    This launches the Hotfix Utility, which then creates the files and folders necessary for updating the source code project and saves them into the folder chosen in the first step of the Hotfix Utility wizard.

    Additionally, you can provide the /path parameter to specify the location where the application creates the updated files. This way you do not need to set the path in the first step of the Hotfix Wizard. You can supply the /path parameter in two different formats – relative, which represents a folder in the location from which the utility was executed; or absolute, which can be any path to a local disk.

    Example: Hotfix.exe /deploy=net45app /path=Deploy
    This launches the Hotfix Utility, which then creates a folder named Deploy in the directory from which the utility was executed and copies all files and folders necessary for updating a source code project into that folder.

  3. Once you have the update files ready, take your website offline. You can do this by copying the App_Offline.htm file from the hotfix installation directory into the root of the remote web project.

  4. Upload the update files created by the Hotfix Utility into your remote web project (overwrite the original files).

    Important

    If you have previously modified some of the Kentico project files, DO NOT OVERWRITE these files. You could lose your modifications.

    You need to compare the modified files with the new versions and make appropriate changes manually.

  5. Manually execute the hotfix SQL scripts on your Kentico database.

    • If you do not use separated databases – run the Hotfix_separated.sql and Hotfix_default.sql script files located in the SQL folder of your hotfix installation directory. We recommend running the files in the described order.
    • If you use separated databases – run the Hotfix_separated.sql script file on the separated database and Hotfix_default.sql on your main database. The script files are located in the SQL folder of your hotfix installation directory.
  6. Open the project in Visual Studio, follow the compilation instructions, and rebuild the solution.

  7. Bring your website back online (delete the App_Offline.htm file).

After applying the hotfix

All users who work with the Kentico administration interface should clear the cache in their browsers after applying the hotfix. Otherwise, some features in the administration interface may not be displayed correctly.

Updating setup files and external utilities

Hotfixes provide bug fixes for all files related to the Kentico installation, which includes the installer and other external utilities, such as Kentico Installation Manager, Kentico Service Manager or the Kentico AD Import Utility.

To update these files and utilities, you need to apply the hotfix to the setup files:

  1. When running the hotfix utility, click Switch to advanced mode in the Change confirmation step.
  2. Select the Setup files checkbox.
  3. Click Next.
  4. In the Running applications step, stop any applications that are currently running from the setup files.
  5. Click Next and continue through the rest of the hotfix procedure.

The hotfix makes any required changes to the files in the directory where you installed your Kentico setup files.

Source code compilation instructions

After applying the hotfix, please perform the following steps in Visual Studio to ensure that the source code works correctly and can be compiled:

9.0.14

  • Add a reference to the Protection library in the CMSOutputFilter project.

9.0.34

  • The hotfix adds and removes a large number of files in the PDFClown project. You need to manually exclude deleted files and include new files into the project:

    1. Expand the PDFClown project in the solution (under the CMSSolution\ThirdParty solution folder).

    2. Manually delete the following files from the PDFClown project:

      • src\org\pdfclown\cms\ISafeInputStream.cs
      • src\org\pdfclown\documents\contents\layers\ILayerNode.cs
      • src\org\pdfclown\documents\contents\layers\LayerGroup.cs
      • src\org\pdfclown\documents\contents\layers\ListModeEnum.cs
      • src\org\pdfclown\documents\interaction\annotations\CalloutNote.cs
      • src\org\pdfclown\documents\interaction\annotations\DualWidget.cs
      • src\org\pdfclown\documents\interaction\annotations\Note.cs
      • src\org\pdfclown\documents\interaction\annotations\RubberStamp.cs
    3. Right-click the src\org\pdfclown folder and select Exclude From Project.

    4. Click Show all files at the top of the Solution Explorer.

    5. Right-click the excluded pdfclown folder and select Include In Project.

9.0.40

  • Add references to the following DLLsin the AmazonStorage project:
    • ~/Lib/AWSSDK.Core.dll
    • ~/Lib/AWSSDK.S3.dll
  • Remove the reference to ~/Lib/AWSSDK.dll from the AmazonStorage project.

9.0.42

  • Add a reference to ~\Lib\Microsoft.SqlServer.TransactSql.ScriptDom.dll in the DataEngine project.

Additional notes and workarounds

General

  • Installer - An error occurred during the Kentico installation when running on an operating system with the Turkish system language. To fix the problem, you need to re-download the installer from the Kentico website.
  • Email marketing - The Check bounced emails scheduled task does not work when executed using the external scheduling service. If you use the external scheduling service, either manually disable the Use external service property of the task in the Scheduled tasks application or apply hotfix 9.0.5 or newer, which disables the property for all instances of the task. You may need to manually disable the property for new instances of the task after creating or importing a new site.

9.0.3

  • E-commerce API - The ShoppingCartInfoProvider.CartCanBeUsedOnSiteInternal method now correctly returns a true value if the cart can be used on the specified site. You may need to update your custom code if you use this method.

9.0.7

  • Smart Search - The smart search crawler does not index pages on HTTPS sites without a certificate from a trusted authority. If you need to use the search crawler with a self-signed certificate, you can override the certificate validation by adding the new <add key=“CMSSearchCrawlerAcceptAllCertificates” value=“true” /> key to your web.config. We advise using the key only in testing or development environments.

9.0.12

  • Macros - Before applying the hotfix, resigning macros with an Old salt value specified converted macro expressions containing open conditions or loops into an internal format that was difficult to read. If you have encountered this problem, you need to manually re-save any affected macros (after applying the hotfix).

9.0.26

  • Continuous integration - The serialized data created for inherited web parts by the continuous integration solution was different every time the web part was stored, even if the web part definition was not changed (new GUID values were generated for property definitions during every store operation). To fix the problem, you need to apply hotfix 9.0.26 and then manually re-save the property definitions for all inherited web parts:
    1. Open the Web parts application.
    2. Select the inherited web part.
    3. Switch to the Properties tab and click Save.

9.0.29

  • Continuous integration - The serialized data created by the continuous integration solution for inherited web parts was incomplete. As a result, certain property settings were incorrect after restoring inherited web parts from the repository. To fix the problem, you need to apply hotfix 9.0.29 and then serialize all objects:
    1. Disable running of scheduled tasks (using the Settings -> System -> Scheduled tasks enabled setting).

    2. Open the Continuous integration application in the Kentico administration interface.

    3. Click Serialize all objects.

    4. Wait until the serialization process finishes and then re-enable scheduled tasks.

      Note: The change may cause some web parts (including non-inherited ones) to have different ordering of properties in the serialized continuous integration data. You can resolve this issue and ensure alphabetical ordering by manually re-saving the property definitions of the given web parts.

9.0.30

  • Field editor - When editing inherited forms (for example properties of widgets or inherited web parts), the system incorrectly reported inherited fields as modified and the ‘Reset field’ button was active, even for fields that were unchanged from the original form. To fix the problem:
    1. Apply hotfix 9.0.30.
    2. Manually re-save any field in the original form.
    3. Re-save any field in the inherited form.

9.0.40

  • If you are applying the hotfix manually to a remote deployment, we recommend deleting the AWSSDK.dll file from the remote web project’s CMS\bin folder (the DLL is no longer used after applying the hotfix).

9.0.50

  • Contact management - When the deletion of inactive contacts took longer than 1 minute, the next run of the Delete inactive contacts scheduled task was not set, and the task did not execute again. To fix the problem, you need to apply hotfix 9.0.50 and then manually execute the scheduled task:

    1. Open the Scheduled tasks application.
    2. Select the (global)option in the Siteselector.
    3. ClickExecutenext to the Delete inactive contactsscheduled task.

Fixed bugs

For a full list of bugs covered by the hotfix, open the Hotfixes page on DevNet and click Fixed bugs for the appropriate Kentico version.