Skip to main content

Project Structure

Ice Porter organizes the generated project into classes, controls, forms, global containers, and resources. Folder names and the split between source and designer files depend on conversion options.

LocationPurpose
App.cs / Application.vbApplication lifecycle and desktop entry point; web startup follows the generated host structure.
ClassesFunctional classes and shared behavior. See Classes.
ControlsVisual classes and their initialization.
FormsForm and dialog templates. See Forms.
GlobalsContainers for functions, variables, constants, and external declarations. See Global Items.
resImages and other resources, often embedded into an assembly.
App.configConfiguration for the applicable .NET Framework application.
sql.configPPJ database providers, connections, and compatibility settings.

Configuration and Assembly Versions​

For .NET Framework executables, App.config is copied to the output as the executable's .config file. Binding redirects can resolve compatible assembly-version changes; they cannot make incompatible reporting engines or providers interchangeable. See redirecting assembly versions.

Modern .NET and web hosts have different startup and configuration conventions. Keep the files generated for the chosen target rather than copying an old desktop configuration unchanged.

Working with Generated Files​

Build dependencies first, then inspect designer errors. Keep custom behavior separate from designer-managed initialization. Before regenerating from SAL, preserve manual changes in version control and decide whether each correction belongs in the original source, conversion settings, or maintained .NET code.

Verify resource build actions and copy-to-output settings. A resource visible in Solution Explorer is not necessarily included in deployment.