Building ConferenceXP

From UW Center for Collaborative Technologies Wiki
Jump to: navigation, search

Building ConferenceXP 5.3 and later

Where to Get the Source

The latest source is on GitHub: https://github.com/conferencexp/conferencexp.

Prior to the transition to GitHub, earlier development was done using the SVN repository at https://assab.cs.washington.edu/cct/conferencexp/trunk.

Basic Build Instructions

The ConferenceXP 5.3 source has been updated to use Visual Studio 2010, and to target .Net Framework 4.0. Additionaly, some dependencies such as the TabletPC components and C runtime have been updated. The build process is also simplified. Use the following instructions to build ConferenceXP 5.3 or later.

We recommend building this version of ConferenceXP on Windows 7 or 8. Windows Vista should also work as a build platform, though we have not tested this. It is still possible to build on Windows XP, but note the caveats under Known Issues below.

  1. Install Visual Studio 2010.
  2. Get the ConferenceXP source as noted above.
  3. Run the Visual Studio Command Prompt (2010) available from Visual Studio Tools. Go to the root of the source directory and type: 'cxpbuild.bat release' or 'cxpbuild.bat debug'. (see note below if building the debug configuration)
  4. Find installers for newly built binaries in the subdirectories of the 'setup' directory.
  5. Clean binaries from the source tree with the script: 'cxpclean.bat'

Known Issues

Building Debug configurations. Prior to building a debug configuration of CXPClient, be sure to add the debug version of the c runtime merge module to the setup project. The merge module is called Microsoft_VC100_DebugCRT.msm. A consequence of a missing or incorrect c runtime merge module is registration failures during install and uninstall.

Building on Windows XP. Windows firewall APIs were updated between Windows XP and Windows Vista. ConferenceXP uses some calls from the later firewall library that will not be available when building on Windows XP. To work around this you may open the ConferenceAPI solution 'Soltuions\ConferenceAPI.sln', and in the LSTCommon project, edit firewall.cs to remove the calls to unavailable APIs. The rest of ConferenceXP should build successfully on Windows XP. Of course the binaries you build this way will not be able to correctly set firewall exceptions on Windows Vista and later.

Failure to build Diagnostic Service Setup Project. There is an issue with VS 2010 running on Windows 7 that can cause the Diagnostic Service Setup project to fail to build with the message "Unable to update the dependencies of the project". This is resolved by a Microsoft Hotfix.

Failure to build the Venue Service Setup Project. This project can sometimes fail during the pre-build validation step. It has been observed to always work on the second try.

Setup solutions occasionally hang during build. There's a known issue with VS 2010 devenv.com that can cause a setup solution to hang. There is a Microsoft Hotfix available to work around the issue.

The specified solution configuration "release|mcd" is invalid. On one system a "Platform" environment variable was set to the value "MCD". MSBuild was found to observe this environment variable if set. The resolution was to unset it.

Building with Visual Studio 2012

You can build everything but the setup projects in ConferenceXP using Visual Studio 2012. First edit cxpbuild.bat, commenting out lines beginning with devenv, then open the VS 2012 Developer Command Prompt in the ConferenceXP root directory and issue the command cxpbuild.bat release or cxpbuild.bat debug.

Building with Visual Studio 2010/12 Express Edition

Using the free Visual Studio Express version you can build parts of ConferenceXP including the client application.

  • Install both the C++ and the C# VS Express applications.
  • Begin by opening the AudioVideo solution with the C++ application. If the code is older than about May 2013, you'll need to change afxres.h to winresrc.h.
  • Build the C++ projects (debug and release builds).
  • Open the build script cxpbuild.bat in a text editor and comment out the lines starting with devenv.
  • Open the Visual Studio 2010 or 2012 command prompt and run the build script: "cxpbuild.bat release"
  • Note that setup projects will not be built by VS Express.
  • You also need to install the VS Express Web Developer application if you want to build the web projects (Venue and Diagnostic services)

Building ConferenceXP 5.2

This describes the steps required for building ConferenceXP 5.2. To build this release, you should have VS 2008 installed.

Get the source code. You can find source for this version on Codeplex:

http://codeplex.com/ConferenceXP 

Navigate to the Source Code tab and download version 5.2.

Or, you can get any committed version on our SVN respository, but note that these instructions are only appropriate for building 5.2 versions, and are not appropriate for building the latest release.

https://assab.cs.washington.edu/cct/conferencexp/trunk

Install the Microsoft SDK for Windows Server 2008. It is available two ways:

Install the Tablet PC SDK 1.7.

Copy Merge modules (*.msm) from the SDK directories to c:\Program Files\Common Files\Merge Modules. Using the default install paths, first 5 items are found in C:\Program Files\Microsoft Tablet PC Platform SDK\msm, the rest in: C:\Program Files\Microsoft SDKs\Windows\v6.1\Redist\VC:

  • MSTPCRT.msm
  • MSVCP60.msm
  • MSVCRT.msm
  • tpcman17.msm
  • inkdiv.msm
  • microsoft.vcxx.crt.x86_msm.msm
  • policy.x.xx.microsoft.vcxx.crt.x86_msm.msm

Modify the cxpbuild.bat script, as outlined in RelNotes.txt. You should not need to do anything if you installed SDKs in the default locations. cxpbuild.bat can be found in the ConferenceXP source code folder.

Build. Run the Visual Studio Command Prompt, and execute cxpbuild.bat. You need to pass a build target (either release or debug). For the most part we only need to build the release version:

cxpbuild.bat release

Note that it is possible to build the projects from the VisualStudio UI, but using the script simplifies things since it builds everything in the correct order so that dependencies are met.

Make sure the build was successful. Find the MSI files for the client and all the servers under the relevant subdirectories of the Setup directory.

Clean Script. There is also a cxpclean.bat script which you can use to clean all the binaries from the source tree. This can be useful if you have any doubt about whether everything is up to date.

Notes on Building ConferenceXP 5.2

Problem with path in VS2008 command prompt. Some systems have installed without the correct .Net framework directories in the Visual Studio 2008 command prompt path. Make sure that the msbuild version in the path established by the VS2008 command prompt is 3.5 or later. For some systems it was necessary to edit C:\Program Files\Microsoft Visual Studio 9.0\VC\bin\vcvars32.bat to make sure the path to framework version 3.5 is ahead of 2.0. Two issues have been observed:

  1. msbuild.exe was not in the path at all
  2. An earlier version was in the path which was not able to parse our v10.0 sln files.

The fix is to set FrameworkDir, FrameworkVersion and Framework35Version as follows

@SET FrameworkDir=C:\windows\Microsoft.NET\Framework\
@SET FrameworkVersion=v2.0.50727
@SET Framework35Version=v3.5 

Manifest tool. In one case we saw problems with the manifest tool (mt.exe), which is used to force CXP applications to run with elevated privileges on Vista. The fix was to specify a different version of the manifest tool in the post-build steps of the executables:

"$(DevEnvDir)..\..\*VC*\bin\mt.exe" -manifest "$(ProjectDir)$(TargetName).exe.manifest" –outputresource:"$(TargetDir)$(TargetFileName)";#1

See this page for details.

Building on Windows 7 Some released versions prior to 5.2 will have these problems when building on Windows 7. These issues have been fixed in the 5.2 release.

  • The Venue Service project file will not open or build. There is a COM exception. This project is many VS versions old.
  • There is an error building the client setup due to a detected dependency ieframe.dll not being excluded.

Additional Notes For Internal CCT Users

To be enabled to commit changes to the local SVN repository:

  1. Acquire the necessary accounts and access privileges. You should be in the edtech UNIX group. Also, you need to set up basic account authorization on assab.cs.washington.edu.
  2. Login to assab.cs, go to /www/auth
  3. Run ‘htpasswd ./htpasswd <username>’ (substituting your user name in place of <username>)
  4. Add your name to the cct group in htgroup.
  5. Now you should be able to connect to https://assab.cs.washington.edu/cct/conferencexp with a Subversion client such as TortoiseSVN, check out, and commit.