*Purpose

This page handles the issue of missing objects after analyzing DOTNet applications.

*Observed in CAST AIP
Release
Yes/No
8.3.x(tick)
8.2.x(tick)
8.1.x(tick)
8.0.x(tick)
7.3.x(tick)
*Observed on RDBMS
RDBMS
Yes/No
Oracle Server(tick)
Microsoft SQL Server(tick)
CSS2(tick)
CSS3(tick)
Action Plan

Perform the below actions

  1. Check if the source files for the missing objects are included in the project file

    1. Open the project file in a text editor. Search for lines containing 'Compile Include' directives:

       <ItemGroup>
          <Compile Include="DB2.cs" />
          <Compile Include="Oracle.cs" />
          <Compile Include="Program.cs" />
          <Compile Include="Properties\AssemblyInfo.cs" />
        </ItemGroup>
      1. If you find a line as <Compile Include="<file_name>" /> file under examination, then the file should be analyzed and objects should be created. In this case, report your problem to CAST Technical Support with the below relevant input.

      2. If you do not find a line as <Compile Include="<file_name>" /> under examination, then the project file could be either old or corrupt or the file is just not part of the project anymore. There are case where the physical source file location and the same file referenced in the project file does not match. This is case of old/corrupt file, recompile the project in Visual Studio and repackage again, as described in .NET - Confirm analysis configuration

  2. Check if the source file for the expected objects contains a compilation directive such as #if : see example below.

    Compilation directive
    #if FrontOffice
    namespace Console.UI.Controllers


    1. If there is a compilation directive, then open the project file and check which configuration is selected

      CSPROJ
      <?xml version="1.0" encoding="utf-8"?>
      <Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
        <PropertyGroup>
          <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
          <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
          <ProductVersion>9.0.30729</ProductVersion>
          <SchemaVersion>2.0</SchemaVersion>
          <ProjectGuid>{70930E81-00D1-4872-AF72-522085676E8B}</ProjectGuid>
          <OutputType>Exe</OutputType>
      [...]

      In this example, the Debug configuration is selected.

    2. Check in the same file if the selected configuration includes the compilation directive

      CSPROJ
       <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
          <DebugSymbols>true</DebugSymbols>
          <DebugType>full</DebugType>
          <Optimize>false</Optimize>
          <OutputPath>bin\Debug\</OutputPath>
          <DefineConstants>TRACE;DEBUG</DefineConstants>
          <ErrorReport>prompt</ErrorReport>
          <WarningLevel>4</WarningLevel>
        </PropertyGroup>
       <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
          <DebugType>pdbonly</DebugType>
          <Optimize>true</Optimize>
          <OutputPath>bin\Release\</OutputPath>
          <DefineConstants>TRACE;DEBUG;PreproDirective</DefineConstants>
          <ErrorReport>prompt</ErrorReport>
          <WarningLevel>4</WarningLevel>
        </PropertyGroup>

      In this case, the PreproDirective constant is defined in RELEASE mode only.

    3. Edit the project file, and :

      1. Either add the PreproDirective constant to Debug configuration, as follows :

        Debug mode
         <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
            <DebugSymbols>true</DebugSymbols>
            <DebugType>full</DebugType>
            <Optimize>false</Optimize>
            <OutputPath>bin\Debug\</OutputPath>
            <DefineConstants>TRACE;DEBUG;PreproDirective</DefineConstants>
            <ErrorReport>prompt</ErrorReport>
            <WarningLevel>4</WarningLevel>
          </PropertyGroup>
      2. Or select the Release configuration, as follows :

        Select Release Configuration
        <?xml version="1.0" encoding="utf-8"?>
        <Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
          <PropertyGroup>
            <Configuration Condition=" '$(Configuration)' == '' ">Release</Configuration>
            <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
            <ProductVersion>9.0.30729</ProductVersion>
            <SchemaVersion>2.0</SchemaVersion>
            <ProjectGuid>{70930E81-00D1-4872-AF72-522085676E8B}</ProjectGuid>
            <OutputType>Exe</OutputType>
        [...]
    4. Re-analyze after editing the project file. If this does not solve the issue, report your problem to CAST Technical Support with the below relevant input:

Relevant input

  • Sherlock export with the following options: Export Logs, Export Configuration files, Export CAST Bases (Management Base and Knowledge Base), source code
  • In some cases the IN tables are also needed to investigate the missing object issue. Support will provide specific intructions to execute the following process when this is needed:
Notes/comments

Ticket #11801

Related Pages