The uigen.exe config file is the configuration file for uigen.exe.
It specifies "placeholders" and their values, which uigen.exe
uses in
the templates. You can find the sample uigen.exe
config file
here: sample uigen.exe configuration file. As always, it assumes
canonical project structure, and that the re-motion framework is
located in a sub-directory of the solution, as explained here:
PhoneBook project structure.
There is also a settings
node with path information to uigen.exe templates.
Settings and <applicationGenerator template...>
The template
attribute contains the path to the uigen.exe
master file,
always TabbedEditor.xml
.
templateRoot
: which set of templates to use
for generating the web application project.
For re-motion version 1.13.6. and lower, these directories
are located under the Remotion
directory, the root directory
of the re-motion distribution. Since uigen.exe
can only
handle absolute paths, you must adapt them to your particular
location of that directory.
targetRoot
: This is the solution root, not the root directory
for the web project, i.e. the top-level directory for all your
Visual Studio sub-projects.
Just as the name suggests, the namespace settings are namespaces, NOT
paths:
projectNameSpaceRoot
: namespace of the web application projectdomainNameSpaceRoot
: namespace of the domain project
Visual Studio mildly enforces that the directory name of a project
is the same as the namespace, so this might not matter if you follow
this convention. However, if you don't, make sure that you specified
the namespace.
Instead of a listing with complicated syntactic variables, here
is an illustration of what is which, with the PhoneBook project
as example:
Placeholders
$ReferencesDir$
: the name of the directory in
the web application project for storing the
references to the domain- and re-motion assemblies
By convention, this node is named "References" in
Visual Studio, so that's probably what you will use
for the placeholder value.$DomainProjectName$
: the name of the directory with the
domain project in Visual Studio (not to be confused with the
namespace)$DomainProjectAssembly$
: The name of the domain assembly
that shall be inspected byuigen.exe
(i.e. where to find
the domain object classes, without ".dll")$WebProjectName$
: the name of the directory with the web application
project in Visual Studio. (generated byuigen.exe
.)$WebClientAssembly$
: the name of the assembly that is the
target of the web project's target. (i.e. the.dll
-product showing up
inbin\Debug
orbin\Release
after a compile and link).$USER_APPNAME$
: a string with the display name of the
generated web application$USER_DEFAULT_ASPX_TOPIC$
: a string to be shown on thedefault.aspx
page showing the Start link to aid the user (the string
usually says "To start the application, just click 'Start'")
This is harder to explain than to demonstrate. Click here and
you will easily understand it: FIXME$USER_DEFAULT_STARTPAGES$
: an invocation of the re-call
function to be called when the user clicks "Start" (or equivalent).
(try it out with the online PhoneBook)$USER_STORAGEPROVIDER$
: the name of the storage-provider, as
declared in the web project'sWeb.config
file (generated by
uigen.exe
)$USER_CATALOGNAME$
: the name of the database (and the
identifier for the connection string) in the web project's
Web.config
file (generated byuigen.exe
) – this should be
the same as specified fordbschema.exe
'sApp.Config
,
explained here: using dbschema.exe$USER_STATUSBAR$
: legacy placeholder, always set to "yes"$USER_CLASSIC_APPSTYLE$
: legacy placeholder, always set to "no"
Please note that these placeholders are not the
only ones that exist. Placeholders are also extracted from
the domain assemblies as well. You can find a
list of these extracted placeholders at
https://at-vie-remotion/svn/Remotion/trunk/ObjectBinding/Web.CodeGenerator/Core/Placeholder.cs
What's more, the values of settings are mirrored by placeholders,
but those placeholders have slightly different names:
projectNamespaceRoot
is mirrored by$PROJECT_ROOTNAMESPACE$
domainNamespaceRoot
is mirrored by$DOMAIN_ROOTNAMESPACE$
templateRoot
is mirrored by$ROOT_TEMPLATE_DIR$
targetRoot
is mirrored by$ROOT_TARGET_DIR$
See also
- This tech-note explains what
uigen.exe
does:
http://re-motion.org/community/LinkClick.aspx?fileticket=lHgK4oQFv10=&tabid=70