Hello everyone,
I got stuck in a solution upgrade process. We have one "Base Customization Solution" which we use to transfer in the follwoing order between the environments:
1 Dev (Starting point "Base Customization Solution" is unmanged)
2 Test/UAT (Import "Base Customization Solution" as managed solution)
3 Production (Import "Base Customization Solution" as managed solution, this is same solution as for Test/UAT)
The import is normally done by using the Update Option and everything works fine.
This time we want to use the upgrade option, because we want to remove old optionset values/status reason values. I know that this option can be more difficult, because of dependencies, I created a forth environment with a copy of Test/UAT.
The import itself works fine and we end up with two solutions:
- Base Customization Solution
- Base Customization Solution Upgrade
But during applying the update/delete the old solution we get an error:
This solution cannot be uninstalled because the 'Attribute' with id 'd7908f96-8b98-44c8-9087-f051dd75ba57(xxx_customerassetid)' is required by the 'Base Customizations Solution Upgrade' solution. Uninstall the Base Customizations Solution Upgrade solution and try again.
I checked the customizations.xml to be sure, that the mentoined attribute is contained in that solution and for me it is looking fine. See XML at the bottom.
For me it looks like, if the fields have the same name on the same entity, but not recognized there were the same.
<Entity>
<Name LocalizedName="Machine" OriginalName="Customer Asset">msdyn_customerasset</Name>
.
.
.
<attribute PhysicalName="xxx_CustomerAssetId">
<Type>lookup</Type>
<Name>xxx_customerassetid</Name>
<LogicalName>xxx_customerassetid</LogicalName>
<RequiredLevel>none</RequiredLevel>
<DisplayMask>ValidForAdvancedFind|ValidForForm|ValidForGrid</DisplayMask>
<ValidForUpdateApi>1</ValidForUpdateApi>
<ValidForReadApi>1</ValidForReadApi>
<ValidForCreateApi>1</ValidForCreateApi>
<IsCustomField>1</IsCustomField>
<IsAuditEnabled>0</IsAuditEnabled>
<IsSecured>0</IsSecured>
<IntroducedVersion>0.0.0.0</IntroducedVersion>
<IsCustomizable>1</IsCustomizable>
<IsRenameable>1</IsRenameable>
<CanModifySearchSettings>1</CanModifySearchSettings>
<CanModifyRequirementLevelSettings>1</CanModifyRequirementLevelSettings>
<CanModifyAdditionalSettings>1</CanModifyAdditionalSettings>
<SourceType>0</SourceType>
<IsGlobalFilterEnabled>0</IsGlobalFilterEnabled>
<IsSortableEnabled>0</IsSortableEnabled>
<CanModifyGlobalFilterSettings>1</CanModifyGlobalFilterSettings>
<CanModifyIsSortableSettings>1</CanModifyIsSortableSettings>
<IsDataSourceSecret>0</IsDataSourceSecret>
<AutoNumberFormat/>
<IsSearchable>0</IsSearchable>
<IsFilterable>0</IsFilterable>
<IsRetrievable>0</IsRetrievable>
<IsLocalizable>0</IsLocalizable>
<LookupStyle>single</LookupStyle>
<LookupTypes/>
<displaynames>
<displayname description="Machine" languagecode="1033"/>
<displayname description="Maschine" languagecode="1031"/>
<displayname description="Machine" languagecode="1045"/>
</displaynames>
<Descriptions>
<Description description="Unique identifier for Demonstration associated with Customer Asset." languagecode="1033"/>
<Description description="" languagecode="1045"/>
<Description description="" languagecode="1031"/>
</Descriptions>
</attribute>
</Entity>
One test i did was:
- Create/Clone the Test/UAT environment again
- Import "Base Customization Solution" as Update to cloned environment (worked fine)
- Make a change small change on dev
- Export the solution again as managed
- Import the solution from step 4 as upgrade into cloned environment
This provides me the same results.
Any ideas how can get more information/hint to tackle this problem ?
Best regards
Christian