Description

After the analysis of a DOTNet application, open the analysis log and verify the existence of the following warning(s)

2018-08-13 22:23:00.115 Warning MODULMSG ; Job execution C:\CASTMS\Deploy\website_with_dot\WEBSITE_CODE\Website.UI\Home.aspx.vb(56,92): error CS0246: The type or namespace name 'XXXX' could not be found (are you missing a using directive or an assembly reference?)

2018-08-13 22:13:55.445151 Warning MODULMSG ; Job execution C:\CASTMS\Deploy\website_with_dot\WEBSITE_CODE\Website.UI\PoleAvailabilityManager.cs(25,17): error CS0234: The type or namespace name 'VisualStudio' does not exist in the namespace 'Microsoft' (are you missing an assembly reference?)

The above warning messages are produced by the .NET compiler, which is run by the .NET analyzer in order to validate the existence of libraries and dependencies in the source code.

The warnings indicate that either the reference cannot be found in the .csproj or .vbproj file or there is some missing source code yet to be delivered. 

Observed in CAST Extension Version


Release

Yes/No

1.0(tick) 


Observed on RDBMS

RDBMS

Yes/No

CSS(tick)
Step by Step Scenario
  1. Package the source code
  2. Run the analysis
  3. Verify the analysis log
Action Plan


  1. Check if the warnings are due to missing libraries or source code. The .NET compiler used by the analyzer is resolving the references either from the external assemblies or from other projects that have been added in the source code. Unresolved references are creating alerts during source code delivery in DMT.
    1. Open Delivery manager tool and check if there are any alerts for missing source code, that were raised during packaging of .NET source code.
      1. For any alerts refer Delivery Manager Tool - Package - Validation - Alerts in order to resolve them.
      2. Check if the alert is coming for the project file which is physically not present in the source code.
        1. Lets see an example: Below is the code snippet of Sherlock.application.module.csproj

              <ProjectReference Include="..\Sherlock.DataAccess\Sherlock.DataAccess.csproj">
                <Project>{153A143C-E13E-4535-A53C-ABA188D2F7CD}</Project>
                <Name>Sherlock.DataAccess</Name>
              </ProjectReference>
              <ProjectReference Include="..\Sherlock.Infrastructure\Sherlock.Infrastructure.csproj">
                <Project>{BA764623-7A95-49B6-9BF1-DE846C9F159E}</Project>
                <Name>Sherlock.Infrastructure</Name>
              </ProjectReference>

          From the above code snippet Sherlock.DataAccess.csproj is expected to be present in the folder Sherlock.DataAccess and this folder is expected to be present in the same folder structure where we have Sherlock.application.module folder.

        2. If the folder structure is not correct then the DMT discoverer would be unable to find the project file referred and an alert is raised. Hence if you are getting any alert in DMT for project file missing, you have to see the folder structure in the referred project file and the physical folder present in the source code.
        3. If there is a mismatch of the folder structure then you will encounter these warnings, which will further impact in the resolution of the objects and links.
        4. This is a source code issue, because when you compile the code in Visual Studio you should get compilation warnings. In this case the project file can be ignored.
    2. If you have resolved all alerts in DMT and warnings are still present
      1. Open the source code file that is referenced in the warning message and check the using list to identify the referenced object. For example for warning:
        2018-08-13 22:13:55.445151 Warning MODULMSG ; Job execution C:\CASTMS\Deploy\website_with_dot\WEBSITE_CODE\Website.UI\PoleAvailabilityManager.cs(25,17): error CS0234: The type or namespace name 'VisualStudio' does not exist in the namespace 'Microsoft' (are you missing an assembly reference?)
        The referenced library in the source file is using Microsoft.VisualStudio.TestTools.UnitTesting
      2. Search in KB to see if object has been analyzed from dll or from a project

        Is unresolved object present in KB (first case)
        SELECT idobj 
        FROM   objfulnam 
        WHERE  fullname = 'Microsoft.VisualStudio.TestTools.UnitTesting' 
        1. If the object is present in the source code then this can be an issue of missing dependency between the AU that contains the source code file or a case of missing external assembly if the object is created from an external library. In both cases you will have to check the CAST-MS configuration
        2. If the object is not present in the KB and since you had no alert in DMT, then the object must have not been analyzed. Open the analysis log and search for any references for the above object and for any warnings or errors go to the relevant pages in the troubleshooting guide.

  2. Check if the application is a Sliverlight framework application. Open the project file and check this string "<SilverlightApplication>true</SilverlightApplication>". If this string is present in the project file then the application is a Silverlight application. To package the Silverlight application we have to package separate set of Silverlight Microsoft assemblies to avoid these warnings.
  3. If the problem you are facing does not match any case listed in this page, contact CAST Technical Support with the Relevant Input to reproduce issue. 

Notes/comments


Related Pages