Error in AX 2012 TFS Sync – ‘Cannot add or remove static keyword for this method’
While preparing a build from the client’s TFS central repository, I ran into this “static keyword” error: 'Cannot add or remove static keyword for this method'. See TFS integration with Microsoft Dynamics AX 2012 and automated scripts for build and deployment.
In the TFS database, we were running a sync with force prior to creating our build. During compile, the above error occurred on a method in which one of our developers had recently added the static keyword.
There are a few articles online regarding this error when running an AXBuild compile. My intention here is just to point out another scenario where the error may be encountered.
It still comes back to the same problem and solution. In the Model database, the ModelElement table stores the element types for methods. See this Microsoft Developer Network article for the list of element types.
In the TFS database, the ModelElement table still showed my method as type 14, ClassInstanceMethod. Even though the static keyword was visible in the method in the AOT, the class would not compile.
I ran the following update statement on the ModelElement table for the static method in the TFS Model database.
update [AX_TFS1_model].[dbo].[ModelElement] set ElementType = 13 where name =
'<method name>'
This allowed the sync to complete and we were able to move on with our build.
Best practice
The Stoneridge development team considers it best practice to create new methods rather than modifying any method in a Microsoft created class. In this case, the method being modified was a custom method.
Under the terms of this license, you are authorized to share and redistribute the content across various mediums, subject to adherence to the specified conditions: you must provide proper attribution to Stoneridge as the original creator in a manner that does not imply their endorsement of your use, the material is to be utilized solely for non-commercial purposes, and alterations, modifications, or derivative works based on the original material are strictly prohibited.
Responsibility rests with the licensee to ensure that their use of the material does not violate any other rights.