Skip to content

Dependencies & Tooling

A precise inventory of what the system needs to build and run, and where each piece comes from. If a build fails, the cause is almost always something on this page being missing.

Build-time toolchain

Tool Purpose Notes
Visual Studio 2008 Primary IDE and builder Required to build the setup project; recommended for the app.
MSBuild Command-line build of the app project msbuild INVENTORY.sln /p:Configuration=Release /p:Platform="Any CPU".
.NET Framework 3.5 SDK Target framework Must be installed on the build machine.
Windows Host OS No cross-platform / dotnet CLI path exists.

The setup project only builds in the IDE

SetupInventory\SetupInventory.vdproj is a legacy Visual Studio setup project. It does not build under MSBuild — only inside the Visual Studio IDE.

The SmartSoft FrameWork DLLs (external, required)

The application references the FrameWork assemblies through relative HintPaths that point outside this repository — e.g. ..\..\FrameWork\..., ..\..\..\DLL\..., ..\..\..\1.JMS\.... The build fails unless those sibling folders/DLLs exist next to the checkout.

flowchart LR
    subgraph Repo["This checkout"]
        APP["smartsoft_inventory\INVENTORY"]
    end
    subgraph Outside["Sibling folders (outside the repo)"]
        D1["..\..\FrameWork\*.dll"]
        D2["..\..\..\DLL\*.dll"]
        D3["..\..\..\1.JMS\*.dll"]
    end
    APP -->|HintPath| D1
    APP -->|HintPath| D2
    APP -->|HintPath| D3
    style Outside fill:#fff3e0,stroke:#fb8c00

Key assemblies the app expects to find:

  • FrameWork.SmartSoft.BLL
  • FrameWork.SmartSoft.General
  • FrameWork.SmartSoft.GUI
  • FrameWork.SmartSoft.Net
  • FrameWork.SmartSoft.DataAccess
  • FrameWork.SmartSoft.Struk
  • FrameWork.SmartSoft.Closing
  • SmartSoft.Parameter
  • SmartSoft.Inventory.FrameWork.DataAccess
  • MyLib, MyControl

The FrameWork source is available in this workspace under framework_smartsoft/, so you can rebuild the DLLs when needed — but the Inventory app consumes them as compiled binaries at their HintPath locations.

Third-party components

Component Type Used for
Crystal Reports Reporting engine Rendering & printing all reports. Must be installed on build + client machines.
Interop.SQLDMO COM interop SQL Server admin (backup/restore, server info).
IrisSkin / Skinner UI skinning DLL The themed look of every form.
ChartFX.Lite Charting control Charts in dashboards/reports.
MessagingToolkit.QRCode Library QR-code generation.
MyControl In-house control library Custom WinForms controls.

Runtime dependencies (client machines)

Every till / back-office PC that runs the app needs:

  • Windows (x86-compatible).
  • .NET Framework 3.5 runtime.
  • Crystal Reports runtime.
  • Network access to the SQL Server instance.
  • The obfuscated registry configuration written under HKCU\Software\VB and VBA Program Settings\SmartSoft\SystemSetting\<AppName>.
  • Receipt printer / peripherals where the PC is a till.

Database

Item Detail
Engine Microsoft SQL Server (2005 / 2014-era).
Auth SQL Server authentication (username/password embedded in the connection string).
Access ADO.NET (System.Data.SqlClient) plus SQLDMO for admin tasks.
Schema Owned by the database itself; the app assumes tables/procs already exist and can check via TableExist / ProcedureExist.

Fastest way to diagnose a broken build

  1. Is Visual Studio 2008 / .NET 3.5 installed? 2. Are the FrameWork DLLs present at their HintPath locations? 3. Is Crystal Reports installed? 4. Are the COM/interop DLLs (SQLDMO, skinning) registered/available? Ninety-nine percent of failures are one of these four.