1 Reply Latest reply on Feb 4, 2019 4:09 AM by DheerajK_81

    Component install corrupted... how to force re-install of a component?

    hegac_1284546

      I had two instances of PSoC Creator 4.2 open, and attempted to update the BLE component to v3.54.  This mostly worked, but then failed due to a file being in use (likely by the other instance of PSoC Creator). 

      Ever since, PSoC Creator believes that the component is installed.  However, any use of the component fails (TopDesign.cysch shows "There is an error associated with this component.  See the Notice List window for details on the specific problem(s)."

       

      The Notice List window correctly lists the following as the problem:

      The instance 'BLE', of component BLE_v3_54, contains an error. Unable to load symbol 'C:\Users\Henry\Documents\PSoC Creator\4.2\Downloads ( 4.2).cylib\BLE_v3_54\BLE_v3_54.cysym' for component 'BLE_v3_54'. Could not find file 'C:\Users\Henry\Documents\PSoC Creator\4.2\Downloads ( 4.2).cylib\BLE_v3_54\BLE_v3_54.cysym'.

       

      Any attempt to update the project to use BLE v3.54 results in the following exception:

      ----------------Components are updated successfully---------------
      Elaboration client 'CyDesigner.Device.FitterPSoC.Common.DesignWideResources.DRC.CyPkDRCModel, cydsfit, Version=4.2.0.641, Culture=neutral, PublicKeyToken=null.CyPkDRCModel' failed with exception System.NullReferenceException: Object reference not set to an instance of an object.
         at CyDesigner.Common.Db.CyS3Db.CyInstCustomizer..ctor(CyInst inst, CyInstBindContext instBindInfo, CyParamSet overrideSet)
         at CyDesigner.Device.FitterPSoC.Common.DesignWideResources.DRC.CyCodeSharingValidator.PopulateSharingComponents(CySchematic schematic, CyElabInstBindContext bindContext)
         at CyDesigner.Device.FitterPSoC.Common.DesignWideResources.DRC.CyCodeSharingValidator.ReloadDesignInfo(CyFullDesign design)
         at CyDesigner.Device.FitLib.DesignWideResources.DRC.CyDRCModel.ReloadDesignInfo(CyFullDesign design)
         at CyDesigner.Device.FitLib.DesignWideResources.CyResourceModel.ReloadElabInfo(CyElabInfo eInfo)
         at CyDesigner.Device.FitLib.DesignWideResources.CyResourceModel.Run(CyElabInfo eInfo)
         at CyDesigner.Common.Db.CyS3Db.CyBGElaborator._runClient(CyElabInfo eInfo, ICyBGElabClient client)

      Elaboration client 'CyDesigner.Device.FitterPSoC.Common.DesignWideResources.DRC.CyPkDRCModel, cydsfit, Version=4.2.0.641, Culture=neutral, PublicKeyToken=null.CyPkDRCModel' failed with exception System.NullReferenceException: Object reference not set to an instance of an object.
         at CyDesigner.Common.Db.CyS3Db.CyInstCustomizer..ctor(CyInst inst, CyInstBindContext instBindInfo, CyParamSet overrideSet)
         at CyDesigner.Device.FitterPSoC.Common.DesignWideResources.DRC.CyCodeSharingValidator.PopulateSharingComponents(CySchematic schematic, CyElabInstBindContext bindContext)
         at CyDesigner.Device.FitterPSoC.Common.DesignWideResources.DRC.CyCodeSharingValidator.ReloadDesignInfo(CyFullDesign design)
         at CyDesigner.Device.FitLib.DesignWideResources.DRC.CyDRCModel.ReloadDesignInfo(CyFullDesign design)
         at CyDesigner.Device.FitLib.DesignWideResources.CyResourceModel.ReloadElabInfo(CyElabInfo eInfo)
         at CyDesigner.Device.FitLib.DesignWideResources.CyResourceModel.Run(CyElabInfo eInfo)
         at CyDesigner.Common.Db.CyS3Db.CyBGElaborator._runClient(CyElabInfo eInfo, ICyBGElabClient client)

      I know what the (general) problem is... the component installation got corrupted somehow due to having multiple PSoC instances open simultaneously.

       

      Q1: Is there a quick way to fix this? (without a full uninstall/reinstall of PSoC Creator?)

       

      For example, can you confirm the following steps should fix this?

      1. Shut down PSoC Creator
      2. cd /d %HOMEDRIVE%\%HOMEPATH%
      3. cd .\Documents\PSoC Creator\4.2\Downloads ( 4.2).cylib\
      4. rd /s /q BLE_v3_54
      5. notepad++ ".\Downloads ( 4.2).cyprj"
        1. Delete the XML node CyGuid_4429d4ed-fe84-42d0-9e9f-19aee0ff4e7e that wraps around BLE 3_54 (the version to be purged...).
      6. Restart PSoC Creator
      7. Explicitly set the component to an earlier incompatible version
      8. Tools -> Find new components, and find/download BLE 3.54 again
      9. Update the component in the project to 3.54....

       

      Thank you.

        • 1. Re: Component install corrupted... how to force re-install of a component?
          DheerajK_81

          Please do the following to get it up and running again:

          #1: Open the project "Downloads ( 4.2).cyprj" in PSoC Creator present at the path: "C:\Users\<user_name>\Documents\PSoC Creator\4.2\Downloads ( 4.2).cylib" as shown below:

          delete.PNG

          #2: Now in PSoC Creator, delete "BLE_v3_54" by right clicking on the project  and then > Delete > Delete

          #3: Now check if there is a folder in the same directory with the name "BLE_v3_54" in case some files weren't deleted. Manually delete them.

          #4: Now in the Download.cyrpj project itself, perform a Tools > Find New Components > Download BLE_v3_54.

          #5: Close this project.

          #6: Now open your project and everything should work without errors.

           

          Let me know how it goes

           

          PS: Do not manually edit the .cyrpj file (step #5 in your interaction) manually. If you miss something it might cause errors. Deleting the component in the project does this for you without any errors.

           

          Regards,

          Dheeraj