Welcome to MSDN Blogs Sign in | Join | Help

image Just when you thought it was safe to go back into the water… the BSOD (Blue Screen of Death) makes an unexpected appearance right after, of all things, installing Expression Web 3. The silver lining is if you’re running Windows Vista or Windows 7 then you’re safe from this problem. It only affects users on Windows XP with Service Pack 2.

So here’s a quick debriefing: After installing Expression Web 3 on a Windows XP SP2  operating system, when you try to run Expression Web 3 you will most likely encounter this:

image

And of course, the system reboots.

The cause was narrowed down to dependencies of Expression Web 3 on SXS.DLL. It’s interesting to note, however, that Superpreview.exe, which ships with Expression Web 3, does not have this problem.

There are two ways to resolve this problem:

1. You can download and apply the hotfix located here (Microsoft KB Article 943232)

2. Or you can update Windows XP SP2 to Service Pack 3 through the Windows Update site or through the steps in this KB Article (322389).

Also, the system requirements for Expression Web 3 need to be updated. On the box for Expression Web 3, you can see that Windows XP SP2 is listed as a requirement, however this should be “Windows XP with Service Pack 3”.

Yes, it’s a long title for a blog, but I’ve got to differentiate the types of setup crashes we have been seeing lately. This one I’ve seen affecting Expression Web 2 and only with computers that have Office 2007 installed on the same machine. Here’s a run down of the situation:

When installing Expression Web 2 the install will crash with the following error:

“Exception has been thrown by the target of an invocation.Cannot convert string 'pack://application:,,,/XSetupUI;component/Resources/Icons/Setup.ico' in attribute 'Icon' to object of type 'System.Windows.Media.ImageSource'. No imaging component suitable to complete this operation was found.  Error at object 'XSetupUI_InitializationWindow' in markup file 'XSetupUI;component/initializationwindow.xaml'”

followed by:

clip_image002

The log file for this error is going to be pretty short. It will contain the exception mentioned above.

The key to solving this error is this line in the exception:

“No imaging component suitable to complete this operation was found.”

Debugging this problem down to the inner exception reveals the exception type to be System.Runtime.InteropServices.COMException and HRESULT 0x88982F50 or WINCODEC_ERR_COMPONENTNOTFOUND.

The fact that an imaging component can’t be found and the HRESULT points to a missing WINCODEC points to this being a problem with the Windows Imaging Component (WIC), or in this case a lack thereof.

To resolve this issue on Windows XP SP2 and Windows 2003 machines, do the following:

1. Download the Windows Imaging Component from here 

Or if you need the full URL it is:

http://www.microsoft.com/Downloads/details.aspx?FamilyID=8e011506-6307-445b-b950-215def45ddd8&displaylang=en

2. On that page you need to click the Continue button to validate your copy of Windows.

3. On English operating systems, the file you want to download is “wic_x86_enu.exe” – the others are localized versions of WIC.

4. Run the install for this file and reboot the machine if the install calls for a reboot, otherwise a reboot is not necessary. Afterward, you should  be able to run the install of Expression Studio 2 or Expression Web 2 with no problem.

If you’re seeing this problem on a Windows Vista or Windows 7 machine, try uninstalling and reinstalling the version of the .NET Framework 3.5. On Windows Vista you can uninstall Framework 3.5 from “Programs and Features” in the Control Panel.

image

On Windows 7, to remove and reinstall Framework 3.5 you will need to go to the Control Panel, click “Turn Windows Features On or Off” on the left of the page and in the “Turn Windows Features On or Off” dialog, click to clear the checkbox next to Microsoft .NET Framework 3.5.1 and click OK. After doing this, a reboot may be required.

To reinstall, open the same Window and click the checkbox to restore the blue square and click OK. This will begin the install process.

 

- Will Buffington

crash1 If you have been over to the Microsoft Expression Web Support Forum lately then you have probably noticed the rash of issues where Expression Web 3 fails to launch as soon as you launch the application. This article isn’t about that issue. I brought it up because in one instance, the two behaviors are similar. I’ll explain.

This problem manifests itself in two separate ways:

1. When you run Expression Web 3 setup, the install fails immediately with a dialog box that reads something to the effect of “Expression Web 3 setup has stopped working and needs to close”.

You can bypass the error by running the WEB_EN.MSI file from the setup sub-directory. This will actually Install Expression Web 3 without the pretty Expression Web 3 dialogs. But wait – when you try to run Expression Web 3, guess what…

2. Running Expression Web 3 produces an error saying “Microsoft Expression Web 3 has stopped working and needs to close.”

Bummer, huh?

In the case of the setup error, because the install crashes immediately there is no log generated. And in the case of launching Expression Web 3 and having it crash, there is no install log file generated because you aren’t doing an install. The event viewer may show the following for either the install or trying to run the application:

Activation context generation failed for "C:\Windows\assembly\GAC_32\PresentationCore\3.0.0.0__31bf3856ad364e35\PresentationCore.dll". Dependent Assembly Microsoft.VC80.CRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",
type="win32", version="8.0.50727.1830" could not be found. Please use sxstrace.exe for detailed diagnosis.

This may lead you to believe the problem is with the .NET Framework 3.0. If you were to go down the road of uninstalling and reinstalling Framework 3.0, you would find that the problem still exists. Actually, the problem still exists if you uninstall and reinstall Framework 3.5.

If you’re encountering this problem with Expression Web 3, chances are you have noticed a couple of other oddities as well:

  • Your Windows Updates may not be installing successfully
  • If you’ve been using Expression Web 2, it still works fine. That’s because the user interface for Expression Web 2 is based off MSO, Microsoft Office 2007. The interface for Expression Web 3 was re-built using Windows Presentation Foundation in .NET Framework 3.5 SP1
  • There may be other side effects that I’ve not encountered, probably related to the setup of applications or usage of built-in Windows features.

So what’s the dealio? The problem here is with the Windows Management Instrumentation (WMI) service. By default, that service is supposed to start automatically when Windows starts. To check, go to START start , RUN and type SERVICES.MSC and hit ENTER.

But this time it doesn’t and that’s causing a problem for Expression Web 3. If you try to start the WMI manually you may receive an error 127 - “The Specified Procedure Could Not Be Found”.

WMI_picOkay, so what’s causing THAT error to happen? Check inside the C:\Windows\System32\WBEM folder – if you have a file called WBEMCOMN.DLL then THAT is the problem. This file should not be located in this folder. There should be a copy of WBEMCOMN.DLL in the C:\Windows\System32 folder, but not the WBEM sub-folder off of System32. If you don’t have a copy of that file in System32 then copy the file there and delete the one from the WBEM folder. If you are prompted that another file with the same name already exists, check the dates of both. More than likely you have a newer version in System32 and you do not want to overwrite it with the one from the WBEM folder. But the key to resolving this problem is deleting the WMEBCOMN.DLL file from the WBEM folder.

After deleting that file, you should be able to start the WMI service.

After the WMI Service is started I would HIGHLY recommend you proceed to Windows update and install the critical and recommended updates, especially if you are offered an update for the .NET Framework 3.5 SP1 when you already have .NET Framework 3.5 SP1 installed.

After checking for and installing the latest updates you should be able to run the install of Expression Web 3 or run the application itself.

- Will Buffington

By now, you have most likely downloaded the trial version of Expression Web 3 and tried it out. Perhaps you’ve purchased version 3 of Expression Web and are now trying to install it. It’s exciting, installing a new piece of software, especially a new version of an established line that you’re familiar with. You can’t wait to get it on the machine and start working with it, exploring the user interface and finding the new and exciting features. In some ways it makes you feel like a kid all over again. And the install dialog comes up.

image

But hang on, the install of Expression Web 3 is taking a little while longer than normal. And … a little while drags onto a while longer … and longer … and longer … and finally you’re saying “what’s going on here?” A five minute install has now just passed the first hour mark and the progress bar has barely even moved. Or has it? Maybe that was just a trick of the eye. Whatever the case, something is definately off the mark, here, right? Right you are!

An issue has been identified that can cause the Expression Web 3 installation to take a very long time. How long is a very long time? It can vary from machine to machine based on your graphic card. “Wait, did you just say ‘my graphic card!?’” Yes, indeed. The problem is being caused by this thing right here. Do you recognize it from the pic above?

image

Yes, that’s the progress bar. This odd behavior typically happens on machines running Windows XP without or with limited hardware acceleration. However, this may affect other operating systems as well. The long setup time happens because of a lack of full hardware acceleration support on Windows XP by DirectX. This causes intensive software rendering of some graphical elements used by WPF (Windows Presentation Foundation). Because the machine spends most of its CPU time rendering the WPF version of the progress bar, which constantly updates during setup, it has fewer resources to spend performing the installation, which dramatically increases the install time.

The good news: There is a VERY EASY workaround for resolving this problem. You ready? When the install dialog comes up, minimize it. That’s it. No, I’m not kidding. Click the minimize button.

image

As you can see in the screenshot above, the minimize button that you are familiar with in applications is exactly what I’m talking about. Minimizing the window hides the dialog bog and the progress bar from the screen which means Windows doesn’t have to render it for you. So the installation will finish in a reasonable amount of time. What’s reasonable? That depends on how fast your machine runs and what kind of hardware it’s packing. Usually the Expression Web 3 standalone install (with Expression Design 3 and Expression Encoder 3) will take about 5 minutes. So you can maximize the dialog box from the taskbar to check the install progress to see if it’s done.

This problem will most likely be fixed in SP1 for Expression Web 3. No ETA on SP1 at this time.

Credit for filing this bug and identifying a workaround goes to Anna Ullrich.

- Will Buffington

The title of this article isn’t an understatement. Just take a look at the picture below. Yes, this is a screenshot of an actual Expression Web setup dialog. Kind of scary isn’t it? The kicker to this weird issue is that Expression Setup and most of the imageExpression application user interfaces are the only applications affected by this problem. None of the other applications on your machine may be affected the same way.

The reason why is because Expression is based on Windows Presentation Foundation (WPF) components native to .NET Framework 3.5. This is why setup insists on installing .NET Framework 3.5 if it doesn’t see it on your machine before it even runs the actual installation for the Expression products.

Now there is a way to work around this problem and that is to set the Video hardware acceleration lower than what it is set currently. Now that workaround won’t do you much good unless you plan on leaving the acceleration at that level, and I wouldn’t recommend doing that for one very good reason – the lower your hardware acceleration, the slower your machine draws graphics.

Still, trying this workaround will at least confirm without a doubt that your video driver needs an update. So here’s how you can set it lower:

For Windows XP

  1. Click the START > Control Panel
  2. In the Control Panel double-left click Display
  3. In the “Display Properties” window click the Settings tab
  4. Click on the Advanced button at the bottom right
  5. Click the Troubleshoot tab. You may have a tab with the name of your video card manufacturer in here – if you don’t see a Troubleshoot tab, click the tab with your video card manufacturer’s name and look for a Troubleshoot or Troubleshooting tab and click it.
  6. The Hardware Acceleration slider is in the middle of the page. Slide it all the way to the left and click Apply, then OK. Click OK on the Display Properties window and close the Control Panel.
  7. Now launch the Expression Web setup again. It should appear normal.

For Windows Vista and Windows 7 machines, there isn’t a way directly through Windows to lower your hardware acceleration. Your video card typically comes with it’s own control panel installed on the machine. For example, ATI video cards come with the Catalyst control panel and NVIDIA cards come with the Forceware control panel. You will need to open that control panel and find the hardware acceleration slider in there and set it lower. Look for a troubleshooting tab somewhere in those control panels.

Okay, so how do we correct this problem? To fix the problem you will need to update your video driver to a more recent version. That means checking the video card manufacturer’s web site. So you may be sitting there thinking “I don’t even know who made my video card, let alone what driver version I’m using!” Fret not. We’re here to help and we’ll show you how to find out who made the video card, what the driver version is and the date on that driver.

  1. First, right click on My Computer then left click on Properties. On Vista or Windows 7 machines click the image button right click on Computer which is found on the right side of the Start menu.
  2. On Windows XP you should now be looking at the “System Properties” dialog. You want to click the Hardware tab and then click the button labeled Device Manager (below, left picture). On Windows Vista or Windows 7 left click on Device Manager located on the menu strip to the left.
    image image
  3. Now we’re in the Device Manager. Find the entry called Display Adapters and left click the little plus sign (on Windows XP) or the little triangle (on Vista or Windows 7) to expand the category. Now you may see more than one driver listed here – if you do I’m going to assume you know why that is. The extra entry may be a driver for a remote PC connection application. You may have two video cards in one machine. For those of you who are running two video cards in one machine (for multiple monitor usage) I’m going to assume that you already know which video card you are using for the main monitor on which you are working. Most will see one entry under Display Adapters, as in the example screen shot below.
    image
  4. Okay, so now we know who made the video card and the model. In the case of the example above, it is made by NVIDIA and the model is a Quadro NVS 285. Now we need the driver version being used. To find this out, right click on the entry and left click on Properties, just as shown in the screen shot above.
  5. Now you should be looking at the properties window for your display adapter. The screen shot below shows what yours should look like. The information displayed will most likely differ. Click the Driver tab.
    image
    Aha! There’s all the information that we need, as shown above in the largest red circle. We have who provided the driver we are using, the driver date and the driver version. Be sure to write or copy down all of this information along with the manufacturer and model number of the card from Step 4.
  6. Now you need to go to your video card manufacturer’s web site and check to see if there is an updated driver. Chances are, if you are running into this issue with the garbled Expression setup screens, there is an updated driver for your card.

I’ve listed some of the more common video card manufacturer sites below, linked directly to their driver download section:

NVIDIA display drivers – you can either do a search or under Option 2 click the button labeled “Graphics Drivers” and have the page search your machine for an NVIDIA card and make a recommendation.

ATI display drivers – you will need to select your operating system, the card type, model and then click the GO! button.

Matrox display adapters – click the plus signs to expand from the model of card you have and click the “Next” button

Asus & Asustek – in the “Download” area to the upper left type the model in the “Input Model to Search” field. For example, enter “EAH3450” (without the quotes). Under the Category select “All” and click the Search button.

SiS (Silicon Integrated Systems) – Look under the “Latest Drivers” section at the bottom of the page.

For other video card manufacturer websites, search on Bing.

- Will Buffington

This is a known problem that pops up every now and then with the Total Training DVD that is included with Expression Web 2. Let’s go over the scenario. When you put the Total Training DVD into the machine you see a prompt telling you to install Silverlight version 1.0 in order to continue.

image

Clicking the prompt opens the Microsoft Silverlight website to a download page that determines if you have  Silverlight installed. If not, a button is displayed asking you to click to install. All you need to do to watch the Total Training videos is click the button and choose to run the file being downloaded (don’t forget to check if you’re blocking pop-ups!) and all will be right and good with the world.  

Wait a moment, there’s a slight problem – when you clicked on that big install button did you notice something about the dialog box that popped up? Take a look again:

image

If you spotted that it’s installing Silverlight 2.0 and/or that the file size presented doesn’t match the 1MB file download that the page said it was then give yourself a gold star! Well, maybe you’re at the wrong web page. Not so fast – check out the URL you were re-directed to, circled below in red. Looks like it’s pulling from the Silverlight 1.0 site, all right but the file being pulled is the wrong one.

image

That presents quite a little problem. If you install version 2 of Silverlight the Total Training DVD won’t let you view the videos because the DVD runs a check specifically for Silverlight 1.0, not just for Silverlight. So before this blog post, you were stuck in a loop that gave you hours of fun beating your head against a <INSERT BLUNT STATIONARY OBJECT HERE>.

Fret not any longer. Until this problem can be corrected on the official Silverlight site, Silverlight 1.0 is available for download once again from the following locations:

Silverlight 1.0 on Windows Live SkyDrive

If you are told that another version of Silverlight already exists on the machine, check your Control Panel > “Add or Remove Programs” (or on Windows Vista or Windows 7 “Programs and Features”) and find Microsoft Silverlight. Right click it and choose to “Add or Remove” or “Uninstall” and then try installing the 1.0 package again.

- Will Buffington

This is another frustrating setup error. It happens during the install of Expression Web 2 and always kills the installation dead in its tracks. The 1406 error means  that the Windows Installer has been denied permission to write to one or more error_smregistry keys on your machine. Although we have not pinned down the exact cause of this problem installing Expression Web 2, we believe it may have something to do with Web Root antivirus or Web Root anti spyware software.

The customers I’ve supported with 1406 errors almost always end up having a multitude of registry keys that are missing the necessary permissions for the Windows Installer to do its job. The best solution I’ve found takes a little time, but it has a 100% success rate so far (and no, it’s not to format the machine for you potential jokesters out there). Enter a tool called “SubInACL”. Credit for this fix goes to Aaron Stebner, a Microsoft employee who runs the following blog: http://blogs.msdn.com/astebner/default.aspx

Follow these steps for resetting the permissions on your registry keys and then reinstall Expression Web 2.

1. Create a new folder on your C:\ drive - you can give it any name, but you might want to call it something like “1406fix” (without the quotes)

2. Download the ZIP file from here (Windows Live SkyDrive):

http://cid-120da1d6fc4472b9.skydrive.live.com/self.aspx/Public/1406%7C_error%7C_fix.zip

Extract the contents of the file to the folder you created in Step 1

3. Navigate to the folder and right click once on the “Reset” (or “reset.cmd” file) and left click on Edit. This should open the file in Notepad.  Click the Edit menu at the top of Notepad and then click Find. In the “Find What” window type: “YOURUSERNAME” without the quotes (it does not have to be all upper-case either) and click the “Find next button”. Replace the YOURUSERNAME in the document that it finds with the name of the user that you are currently logged in as. The first one that you find will be a line that starts with the word “echo”. We will ignore this instance of YOURUSERNAME and click “Find Next” to locate the next one.

For example - if you are currently logged in as Joe Blow then you would replace YOURUSERNAME with Joe Blow.

After making this change, Go to Edit and click “Find Next” to find one more instance of YOURUSERNAME. Again, replace this with the name of the user that you are currently logged on as. You should only have to make two edits. Then click File, Save and save the file.

4. Close the Reset (or Reset.cmd) file.

5. Double left click on the “SubinACL” (or subinacl.msi) file to begin the installation of the SubInACL tool. You should see a dialog saying “Welcome to the Windows Resource Kit Tools Setup Wizard for SubInAcl.exe”. Click Next. Accept the license agreement and click Next. Make sure you are installing to the drive that has enough space (this tool is only 1.13 MB in size) and click “Install Now”. The install may take a minute or two. When it is done, click Finish.

6. After the install of SubInACL is finished, refer back to the folder you created in Step 1. Right click the “Reset” (or “reset.cmd”) file again and left click on “Run as Administrator”. This will start the process of modifying the registry keys to correct the permissions. When run you will see a message saying that you must have modified the YOURUSERNAME in the reset.cmd file - do not worry about this as we have already done it. Allow the script to continue working. This may take some time to complete.

7. After the tool is finished, it will read “Finished. Press Any key to exit …” on the screen. Press a key and the command window will close. If it does not close you may close it manually.

After the reset is complete run the install of Expression Web 2. It should complete without any problem this time.

- Will Buffington

Tired of trying to install Expression Web 2 over and over again only to have the installation crash with an unhandled exception error? Sick of seeing the dialog “An What1unknown error has occurred” during Expression Web 2 setup? No, it won’t cost you $19.95 plus shipping and there are no easy payments needed. Below is a list of some of the known reasons why the installation of Expression Web 2 can go south on you, ending in one of these cryptic crashes. Keep in mind that if you can get a log file of the failed installation, that will help you identify what’s going on. Most crashes in the setup phase of Expression Web 2 are going to be related to the .NET Framework 3.5 or .NET Framework 2.0, though this will not be the case for all.

Case 1 – Bad install of the .NET Framework 3.5 or Framework 2.0

Description: This scenario may be the easiest to resolve as it just involves removing the .NET Framework 3.5 from Add/Remove Programs (Programs and Features on Windows Vista) in the Control Panel and then allowing the Expression Web 2 setup to install Framework 3.5 as part of the setup process.

Solution: For crashes in the setup program, this is almost always where to start. If a removal and reinstall of Framework 3.5 does not resolve the problem, try the following to resolve, in order:

1. Download Aaron Stebner’s .NET Framework Cleanup tool either from here or from here. The cleanup tool is publicly available and the user’s guide can be found here.

Steps for using the .NET Framework Cleanup tool:

  • Open the downloaded ZIP file and run the cleanup_tool.exe. You must agree to a license agreement and then you should see main cleanup utility screen with a drop-down box. Select .NET Framework 3.5 from the list and click the Cleanup Now button.
  • After this is finished, restart the machine if the tool asks for a restart and try the install of Expression Web 2 again. If the installation succeeds you don’t need to go onto step 2, though I highly recommend it. You should always install the latest service packs for your software.

2. Install service pack 1 for .NET Framework 3.5. This can be downloaded from here: http://www.microsoft.com/downloads/details.aspx?FamilyID=AB99342F-5D1A-413D-8319-81DA479AB0D7&displaylang=en

If installing SP1 for .NET Framework 3.5 does not resolve the Expression Web 2 installation problem, check to see if you have Microsoft .NET Framework 2.0 installed. If so, try removing it after you uninstall Framework 3.5.

Note: If you have removed Framework 3.5 and you receive an error saying that .NET Framework 2.0 cannot be uninstalled because it would affect other applications that are installed, remove .NET Framework 3.5 and 3.0 first, then uninstall Framework 2.0. If you still get the same error, you can remove the following registry key (per the following MSDN blog http://blogs.msdn.com/astebner/archive/2006/05/16/599565.aspx):

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft \.NETFramework\v2.0.50727\SBSDisabled

and/or

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft \.NETFramework\v2.0.50727 SP1\SBSDisabled

If you are receiving an error during the installation or uninstall of the .NET Framework 2.0, refer to the following Microsoft KB article:

Framework 2.0 manual Removal - http://support.microsoft.com/kb/908077

or, Aaron Stebner’s blog: How to manually clean up a failed .NET 2.0 install - http://blogs.msdn.com/astebner/archive/2005/04/16/408856.aspx


Case 2 –
You may have uninstalled .NET Framework 3.5 Service Pack 1 and then installed Windows Vista SP1

Description: This scenario may not affect many people, however it has been seen in at least one situation. If you have had Service Pack 1 installed for .NET Framework 3.5, uninstalled it and installed Windows Vista SP1, then tried to install Expression Web 2 the install may crash on you. A log file will show a line identical to the one below, though the public key token may vary:

Error: Exception has been thrown by the target of an invocation.Could not load type 'MS.Internal.ResourceIDHelper' from assembly 'WindowsBase, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'.

Solution: Reinstall .NET Framework 3.5 Service Pack 1, then reinstall Expression Web 2


Case 3 – Check the Windows\Fonts folder for anything out of place

Description: If you click on the link of the error dialog that says “what does this error report contain” you will see the exception details:

Error Signature

Event Type: clr20r3 P1: xsetup.exe P2: 2.0.133.0 P3: 480e9622

P4: xsetup P5: 2.0.133.0 P6: 480e9622 P7: 199d P8: 39

P9: system.typeinitialization

Or if your error log says anything about system.typeinitialization, you should check the Windows\Fonts folder.

Solution: In one confirmed case, the installation was crashing because the Arial Narrow font was not actually present in the Fonts folder. Instead, the user had a shortcut to the Arial Narrow font which pointed to an invalid location. How this happened in the first place we aren’t sure, but deleting the shortcut allowed Windows to automatically replace the font from the backup file cache and setup succeeded normally afterward.

You can also switch to a Details view to view the files in the fonts folder and look for any files that have a size of 0 KB – this would indicate a possibly damaged font file. If deleting the file doesn’t work or is replaced by another zero-byte font file then this may indicate a problem with that particular sector of the hard drive. In that case, click START and in the RUN command line type CMD. From the black command prompt window type CHKDSK /F and hit ENTER – it will say the volume is in use and that you will need to reboot the machine. Reboot and allow the check disk scan to take place. It should be able to find any broken chains, bad clusters or sectors and repair them. After it is finished, look back in the Windows\Fonts folder and check the font files to see if the file is still at 0 KB.

Last but not Least – Remember that setup support for Microsoft Expression Web and Expression Studio is always free and doesn’t count against any support incidents that may come with your software. If you’ve become overly frustrated with the problem, give Microsoft support a call and have a case set up. The support engineers will be able to get your installation back on track.

-Will Buffington

This is a frustrating problem. You launch Expression Web and the splash screen pops up, like normal. But all of the sudden you see …

image

The time it takes for the re-install or the re-configuration to complete varies but you may sit there for 20 seconds on up to a few minutes waiting. Eventually Expression Web will launch. Now if a portion of the Expression Web installation becomes damaged then this behavior is normal. Each time you launch a Windows Installer-based application a quick check against a cached MSI file is made. That cached file contains information about all of the files and registry keys that this particular application installed. Windows Installer checks that info against the files and registry keys on your computer when the program is launched and if any discrepancy is found then a reinstall is called for and you see a dialog box like the one above. This allows the program to restore the files and folders to their original or last-patched versions. This feature of the Windows Installer is called resiliency. It’s also referred to as the self-healing or self-repair feature. Once the repair is done, it’s done. The application should function normally and you shouldn’t see the self-repair happen again.

So what happens if you see it each time you shut the program down and launch it? No, that’s not supposed to happen. That’s a problem. The good news is there is a way to fix this problem.

Important Note: Although this is similar to the issue where Expression Web tries to repair itself each time you launch Outlook or receive email in Outlook, keep in mind this problem happens when you launch Expression Web itself.

Cause

This issue usually happens because of permissions problems on one or more of the registry keys. What we don’t know yet, at the time of this writing, is what exactly is changing the permissions on those keys. The hive commonly affected is HKEY_CLASSES_ROOT. Although the root level hive is unaffected, sub-keys appear to be lacking necessary permissions for the Administrators and System groups.

How to Resolve

So here’s how you resolve this problem. I can’t take the credit for finding the fix – that goes to Aaron Stebner, a long-time Microsoft Employee.

1. Download the SubInACL tool from here and install it: http://www.microsoft.com/downloads/details.aspx?FamilyId=E8BA3E56-D8FE-4A91-93CF-ED6985E3927B&displaylang=en

By default, it will install to c:\Program Files\Windows Resource Kits\Tools

2. If you are running Windows Vista, click on the Start menu, choose All Programs, then Accessories, then right-click on the item named Command Prompt and choose Run as administrator

3. If you are running an OS other than Windows Vista, go to the Start menu, choose Run, type the following:

cmd

and click OK

4. In the command line, type the following:

notepad reset.cmd

hit ENTER and click yes to create a new file named “reset.cmd”

5. Copy and paste the following contents into reset.cmd (or download it from this location on my file server and rename it from reset.cmd.txt to reset.cmd):

cd /d "%programfiles%\Windows Resource Kits\Tools"

subinacl /subkeyreg HKEY_CURRENT_USER /grant=administrators=f /grant=system=f /grant=restricted=r /grant=YOURUSERNAME=f /setowner=administrators > %temp%\subinacl_output.txt

subinacl /keyreg HKEY_CURRENT_USER /grant=administrators=f /grant=system=f /grant=restricted=r /grant=YOURUSERNAME=f /setowner=administrators >> %temp%\subinacl_output.txt

subinacl /subkeyreg HKEY_LOCAL_MACHINE /grant=administrators=f /grant=system=f /grant=users=r /grant=everyone=r /grant=restricted=r /setowner=administrators >> %temp%\subinacl_output.txt

subinacl /keyreg HKEY_LOCAL_MACHINE /grant=administrators=f /grant=system=f /grant=users=r /grant=everyone=r /grant=restricted=r /setowner=administrators >> %temp%\subinacl_output.txt

subinacl /subkeyreg HKEY_CLASSES_ROOT /grant=administrators=f /grant=system=f /grant=users=r /setowner=administrators >> %temp%\subinacl_output.txt

subinacl /keyreg HKEY_CLASSES_ROOT /grant=administrators=f /grant=system=f /grant=users=r /setowner=administrators >> %temp%\subinacl_output.txt

subinacl /subdirectories %programfiles%\ /grant=administrators=f /grant=system=f /grant=users=e >> %temp%\subinacl_output.txt

subinacl /subdirectories %windir%\ /grant=administrators=f /grant=system=f /grant=users=e >> %temp%\subinacl_output.txt

6. Change the values named YOURUSERNAME to be the Windows user account that you are logged in with.

7. Save and close reset.cmd. 

8. Type reset.cmd and press enter to run the SubInACL tool.  This tool will take several minutes to run, and it requires that the user account you are using has administrator privileges on the system.  This is why it is necessary to run it from an elevated cmd prompt on Windows Vista.  Step 2 above can be used to start an elevated cmd prompt on Windows Vista.

After reset.cmd completes, launch Expression Web. It may configure itself once more. Close it down and launch it once again. Now it should not need to configure itself.

Problem

When you try to preview an ASPX or PHP page in Expression Web 2, which uses the built-in Microsoft Expression Development Server, you may receive one of the following two errors:

The XML page cannot be displayed

Cannot view XML input using style sheet. Please correct the error and
then click the Refresh button, or try again later.

------------------------------------------------------------------------------------

The server did not understand the request, or the request

was invalid. Error processing resource

'http://www.w3.org/TR/xhtm...

or …..

Page Cannot Be Displayed

Cause

A recent update (signature file 1.53.283.0) for Windows Defender and Microsoft Forefront Client Security released on March 9, 2009 to address a Win32/PossibleHostFileHijack issue. Signature versions 1.53.283.0 and higher include this fix.

If you aren’t sure whether or not you were updated with this signature file, here’s a way to check:

Windows Vista

1. Click the START button > Control Panel
2. In the Control Panel “Classic View” (link on the left side of the page) open Programs and Features
3. On the left column, click the link “View Installed Updates”
4. From the menus near the top of the page, click Views and select Detail. Then right click on the column header labeled “Size” and left click to select “Installed On”. A new column called “Installed On” should appear. Clicking this column header should allow you to sort the items in ascending or descending order. Sort these by the most recent date.
5. Look for Definition update for Windows Defender (KB91557) or Microsoft Forefront Client Security – version 1.53.283.0 or higher

Windows XP

1. Click the START button > Control Panel
2. In the Control Panel “Classic View” (link on the left side of the page) open Add or Remove Programs
3. At the top of the Add or remove Programs dialog, click to select the “Show Updates” checkbox
4. Scroll down to Windows Defender and look beneath that program for the definition update version 1.53.283.0 or higher

How to Resolve

To resolve this problem, do the following:

1. On Windows Vista, click the Start button > All Programs > Accessories and right click on Notepad. Left click on “Run as Administrator”. On Windows XP simply click the Start button > Programs > Accessories and launch Notepad.

2. Click File > Open and navigate to C:\Windows\System32\drivers\etc and open the hosts file

3. In the hosts file below the lines that start with a pound (#) sign, you may have entries, however if you are affected by this issue you will not have an entry for the loopback address for localhost. On a new line add the following:

127.0.0.1       localhost

Use the <TAB> key after the IP address for the correct spacing to add localhost as the hosts file is tab delimited.

4. Click File, Save and close the Hosts file.

This should resolve the issue for not being able to preview ASP.NET and PHP pages in Expression Web 2. This issue also affects ASP.NET Web Development Server as shown here.

Note: This article has been recently updated to include compatibility information for Internet Explorer 6. Please see the end of the article for further information.

One of the comments I hear commonly from customers is they miss the photo gallery that was included with FrontPage. For the layman building a web page, it was easy to configure. All you did was select the photo gallery, select the photos you wanted to include, add some captions if you wanted and FrontPage did the rest. The FrontPage photo gallery wasn't complex or pretty, but it got the job done and it was easy. But now, the lack of a photo gallery in Expression Web has puzzled some users. You can still use FrontPage photo galleries in Expression Web, but you won't find the easy-to-use wizard that made showing off the kids' birthday party such a piece of cake (seriously, no pun intended).

Why would Microsoft do this? Well, I'm not a member of the development team and I'm not privy to the decisions made as far as including features. What I can tell you is Expression Web plays on a level higher than FrontPage by introducing you to Cascading Style Sheets (CSS). In fact, not only do you get schooled in CSS when you learn Expression Web, you become intimately familiar with the subject. Using CSS, you can create a photo gallery for your page that shows off thumbnails of your photos and full size versions of your photos without even having to click the mouse button! It also allows you to organize your pictures into a nice set of columns or rows. The best thing about CSS is the code, when written properly, is neat and clean and functions within W3C standards.

So let's get to it. I'll show you how I designed my photo gallery page using CSS and you can take it from there. If you would like to see an example of the CSS Photo Gallery that this tutorial covers, you can view it here.

The first thing I would encourage you to do is think about how you want to display your pictures. If you have ever seen a photo gallery based on CSS before you know that you can hover the mouse over a thumbnail and you can get a larger image displayed of the picture you chose. In some photo galleries such as the one below, you have a page full of thumbnails and the larger picture just appears over the thumbnails. The larger picture usually disappears when your mouse pointer leaves the thumbnail over which you were hovering.

preview1_4

Personally, I don't care for this type of photo gallery because, as you can see in the illustration above, the larger picture blocks the rest of the thumbnails and in some cases may even obscure the thumbnail I'm currently hovering over. The photo gallery I opted for contains two rows of thumbnails and a dedicated space for viewing the larger picture. The picture below is the photo gallery I'll be showing you how to build using CSS and Microsoft Expression Web 2.

preview2_2

To begin, let's start with our collection of photos. My photos have all been sized to 816 pixels wide by 612 pixels tall. I would recommend a uniform size in your photos for your photo gallery for the sake of consistency. You can also use resized images of your photos for the thumbnails, but in this case I didn't do that - I set the width and height properties in my code as you will see shortly. So now, let's get coding!

Launch Expression Web 2 and create a new one page site or add a page to an existing web site. Even though my site was all about the photo gallery I still created a folder off the site root called "photos" and placed all of my photos in there for ease of reference. I usually work in split view so I can see the HTML code and the output.

First, we need a container in which we will place all of our photos on this page. For this I used the <div> element. In the <body> portion on your page, add the following (in code view or if you are using split view, the upper half of the workspace):

<body>
<div class="container">

</div>

This looks pretty basic, but there are a couple of things to note. First, the class attribute in the div element tells the browser that we are using a separate class to style this container. Second, remember how I said this is the overall container for our pictures. That means the rest of our code is going to go between the two lines of code shown above. Let's add our class now. You add classes in the <head> element. Since these are style classes, we are going to need to add the <style> element after the <meta> element. So our code from the top of the page will look like this:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<style type="text/css">

</style>

Your classes will be added between the <style> tags. Since we created a container that references a class called "container" our code will look like this:

<style type="text/css">

div.container {
    width: 400px;
    background-color: transparent;
}
</style>

You do not have to call the class "container", that's just the name I used. You can call it container1, background, matting or whatever you want to call it. In our container class we are setting two properties - the width is set to 400 pixels and the background color is transparent. That means if I set the page background color to blue or purple, the background color of the container would also appear that same color since the div sits on top of the page.

Okay! So now we have a container. If you were to preview the page you would see absolutely nothing because the container is transparent remember? Let's move on! Time to add your first thumbnail to the page. Between the two <div> tags you added in the body of the page, we will add code so you will have the following in the body of your page, starting with the <body> tag:

<body>
<div class="container">

<div class="thumbnail">
    <img src="link to picture 1.jpg" width="160" height="120" alt="thumb"/>
    <span><img src="link to picture 1.jpg" alt=""/></span>
    <div class="caption"> 
        Short caption of your pic 
    </div>
</div>

</div>

Let's take this apart and see what we have. We have a second div container that references a class called "thumbnail". That div container is placed inside the first container. That means we will have to add a class called thumbnail in our style tags. And inside the second div container we have placed three things. First is an image that has a width of 160 pixels and a height of 120 pixels. This is our thumbnail. Now instead of linking to your original image and using the width and height properties to resize the image you can link to another image that is already resized.

Second, we have added a <span> element. So let me tell you 'bout spans and how they differ from divs. A span element is essentially the same thing as a div, except that it is treated as an inline element instead of a block element. So you can use a span element to highlight the first sentence of text in a paragraph and apply styles to that sentence only, unlike divs which apply styles to everything in the box. Our span element in the code above also contains an image tag linked to the same image as linked in the thumbnail. The difference is we won't apply any resizing properties, so the photo will be shown at full size. After the image tag, we close the span.

Lastly, we include one more div container referencing a class called "caption". Of course this container will contain the caption we want to display for our photo. We then close the element for the caption container, then the thumbnail container and finally the main container.

We're almost done with our first thumbnail! We still need to add the appropriate styles. To our styles we now need to add the following:

.container span {
    position:absolute;
    top: 30px;
    left: 425px;
    border: 1px solid white;
    visibility: visible;
}

div.thumbnail {
    margin: 10px;
    border: 1px solid gray;
    height: auto;
    float: left;
    text-align: center;
    width: 170px;
}

.thumbnail img {
    display: inline;
    margin: 5px;
}

That's a lot of information and what does it all mean!? I won't go into a detail explanation of all of the attributes as I'll leave that to you for homework. Look at the first style set, the .container span style. We are setting style attributes for the span element of the container class. The fact that we begin this style set with a period (.) means we are continuing the previously listed class, which in this case is the container class. Our container does contain a span element, so we set the attributes when a span exists in the 'container' div. The reason I am setting the visibility to visible instead of hidden is because I want to display a graphic instead of blank space where the full size image will appear. To set this graphic, we need to add the following code in the body of the page to our container div:

<span>
        <img src="link to default span photo.jpg" alt=""/>
</span>

We have now added a span element to the container div and set a default image. That image is 813px wide by 600px tall, by the way. The code we have in the body of the page now looks like this:

<div class="container">
    <span>
        <img src="link to default span photo.jpg" alt=""/>
    </span>
<div class="thumbnail">
    <img src="link to picture 1.jpg" width="160" height="120" alt="thumb"/>
    <span>
    <img src="link to picture 1.jpg" alt=""/></span>
    <div class="caption">
        Short caption of your pic
    </div>
</div>

Next, we are defining attributes for the container class 'thumbnail'. In the next part, we are continuing the .thumbnail class and defining attributes for img. The word 'img' is a reserved word used for defining images. In this case we are defining attributes for any image that appears in our 'thumbnail' container.

Let's define a few more styles that we will need to make our page work. We will add these below the .thumbnail img style above.

.thumbnail span {
    position:absolute;
    top: 25px;
    left: 420px;
    border: 1px solid gray;
    visibility: hidden;
    z-index:auto;
    width: 825px;
}

/** hover covers the main div **/
.thumbnail:hover {
    border: 1px solid blue;
    background-color:#FFCC66;
}

.thumbnail:hover span {
    visibility: visible;
    z-index:auto;
}

We defined the span element for our container class, but we also need to define the span element for our thumbnail class. If we didn't, all of our full size pictures will appear, one on top of the other, in the same area as the container span and would never go away. It's important to realize here that we aren't replacing the span associated with our container class. That still exists. But we have span that will exist on top of the container class span. By default, it will be hidden so you will see the container class span. The .thumbnail: hover span style tells the span how to appear when the mouse pointer is hovered over a thumbnail. We are telling the span associated with that thumbnail to become visible. The .thumbnail:hover class tells the actual thumbnail how to look when we hover the mouse over it. In this case we are setting the border to a solid blue color and setting the background to color #FFCC66, which is a light orange (you can see this in the previously shown photo). This can, of course, be change to fit your taste.

One other important thing to note. You may have noticed that the .thumbnail styles for hover and hover span use a colon (:). Why is this important? When you are defining an object you can set styles that take effect when certain events happen, like when the mouse hovers over  that object or when the user clicks on that object. You use a colon to define an event. So in the .thumbnail:hover line, we are setting styles that only take effect when the user hovers the mouse pointer over a thumbnail. In the line .thumbnail:hover span, we are setting styles for the span associated with the thumbnail when the user hover the mouse over the thumbnail. Whew!

The last style we need to define is the caption. Notice in the thumbnail div container we have an embedded div container that references a class called 'caption'. So we add the following to our style tag:

.caption {
    width: 160px;
    margin: 4px 6px 6px 6px;
    text-align:center;
    font-family:Arial, Helvetica, sans-serif;
    font-weight:normal;
    font-size:small
}

Remember this is just styling for the caption container.

To add additional thumbnails to the page, all you have to do is copy the thumbnail class div container code in the body and paste it again, then change the link to the picture and the caption. Using the code examples with the attributes I've given, you can fit eight thumbnails onto a page and display a full size image of the photo. I discourage the use of scrollbars, especially on a page like this and instead recommend if you have more than eight photos that you create multiple pages with the same code and just change the links and the caption. You can add a hyperlink in each page that point to the various pages of your photo gallery.

And of course, remember to end the main container class div tag and the body and html tag where appropriate. So the code, in it's entirety for our completed page looks like this:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<style type="text/css">

div.container {
    width: 400px;
    background-color: transparent;
}

.container span {
    position:absolute;
    top: 30px;
    left: 425px;
    border: 1px solid white;
    visibility: visible;
}

div.thumbnail {
    margin: 10px;
    border: 1px solid gray;
    height: auto;
    float: left;
    text-align: center;
    width: 170px;
}
.thumbnail img {
    display: inline;
    margin: 5px;
}

.thumbnail span {
    position:absolute;
    top: 25px;
    left: 420px;
    border: 1px solid gray;
    visibility: hidden;
    z-index:auto;
    width: 825px;
}


.thumbnail:hover {
    border: 1px solid blue;
    background-color:#FFCC66;
}

.thumbnail:hover span {
    visibility: visible;
    z-index:auto;
}

.caption {
    width: 160px;
    margin: 4px 6px 6px 6px;
    text-align:center;
    font-family:Arial, Helvetica, sans-serif;
    font-weight:normal;
    font-size:small
}

</style>
</head>

/** Comment - End of HEAD tag **/

 

/** Comment - Starting the BODY tag **/

<body>

<div class="container">
    <span>
        <img src="http:// link to default span photo.jpg" alt=""/>
    </span>
<div class="thumbnail">
    <img src="link to picture 1.jpg" width="160" height="120" alt="thumb"/>
    <span>
    <img src="link to picture 1.jpg" alt=""/></span>
    <div class="caption">
        Text for Caption 1
    </div>
</div>
<div class="thumbnail">
    <img src="link to picture 2.jpg" width="160" height="120" alt="thumb"/>
    <span>
    <img src="link to picture 2.jpg" alt=""/></span>
    <div class="caption">
        Text for Caption 2
    </div>
</div>

<div class="thumbnail">
    <img src="link to picture 3.jpg" width="160" height="120" alt="thumb"/>
    <span>
    <img src="link to picture 3.jpg" alt=""/></span>
    <div class="caption">
        Text for Caption 3
    </div>
</div>

<div class="thumbnail">
    <img src="link to picture 4.jpg" width="160" height="120" alt="thumb"/>
    <span>
    <img src="link to picture 4.jpg" alt=""/></span>
    <div class="caption">
        Text for Caption 4
    </div>
</div>

<div class="thumbnail">
    <img src="link to picture 5.jpg" width="160" height="120" alt="thumb"/>
    <span>
    <img src="link to picture 5.jpg" alt=""/></span>
    <div class="caption">
        Text for Caption 5
    </div>
</div>

<div class="thumbnail">
    <img src="link to picture 6.jpg" width="160" height="120" alt="thumb"/>
    <span>
    <img src="link to picture 6.jpg" alt=""/></span>
    <div class="caption">
        Text for Caption 6
    </div>
</div>

<div class="thumbnail">
    <img src="link to picture 7.jpg" width="160" height="120" alt="thumb"/>
    <span>
    <img src="link to picture 7.jpg" alt=""/></span>
    <div class="caption">
        Text for Caption 7
    </div>
</div>

<div class="thumbnail">
    <img src="link to picture 8.jpg" width="160" height="120" alt="thumb"/>
    <span>
    <img src="link to picture 8.jpg" alt=""/></span>
    <div class="caption">
        Text for Caption 8
    </div>
</div>

</div>
</body>
</html>

Below content Updated 5/8/2009:

That would be all there is to it if you are running Internet Explorer 7, Internet Explorer 8, Mozilla Firefox or Safari. But there’s a big “gotcha” when it comes to Internet Explorer 6 that I only discovered a short time ago and had to correct. IE6 only supports the :hover pseudo-class in the anchor <a> tag. That means if you tried to view the page I originally linked in IE6, the thumbnails would show but when you hovered the mouse over a thumbnail – nothing happened.

I did quit a bit of research on this problem and while there are a few different workaround, there is one I found to be the easiest, thanks to a site called “jQuery” which makes a reasonably-sized script available to handle this problem. And what’s even better, the creative minds behind jQuery update this file on a regular basis.

So let’s take a moment to go through a few steps to update our page code for IE6 compatibility. I’ll go through step-by-step:

1. Download the jQuery file from this link: http://code.google.com/p/jqueryjs/downloads/detail?name=jquery-1.3.2.min.js&downloadBtn=

2. Upload the file to your web server. It is only 55.9KB.

Now add the following to the code on your page:

3. To the <head> tag add:

<script src="jquery-1.3.2.min.js" type="text/javascript"></script>

<script type="text/javascript">

$(document).ready(function() {

        $('.thumbnail').hover(function() {

                        $(this).addClass('IE6hover');

        }, function() {

                        $(this).removeClass('IE6hover');

        });

});

</script>

4. In the code above, note that the word “.thumbnail” and “IE6hover” are going to vary depending on names you used in your site. In the< head> tag of the page I used the following style:

.thumbnail:hover {

        border: 1px solid blue;

        background-color:#FFCC66;

}

I used this style to tell the browser if the user hovers the mouse over .thumbnail then to change the background and border color. So change this style to the following:

.IE6hover, .thumbnail:hover {

        border: 1px solid blue;

        background-color:#FFCC66;

}

As you can see, I’m keeping the original name “.thumbnail:hover” but I’m adding the “.IE6hover” name from the script we added above to the style. So this means .IE6hover AND .thumbnail:hover will implement the properties set in the curly braces{ } that come afterward.

We want to make an addition to one more style. Find the style used on the span to set the visibility:

.thumbnail:hover span{

        visibility: visible;

        z-index:auto;

}

And add the .IE6hover like so:

.IE6hover span, .thumbnail:hover span{

        visibility: visible;

        z-index:auto;

}

So now we are covering the span in both cases and applying the visibility property.

And that’s it! You don’t need to make any changes in the <body> tag. Save the page, and now you should see the hover event in both IE6, IE7, IE8 and the non-IE browsers like Firefox, Safari and Opera.

That's it! Again, if you would like to see a working page of this type of photo gallery, you can view one by clicking here. Please note that I have adjusted the top: attributes of the span styles since the web server I'm hosting with puts a banner ad on the sample page I just linked. On a page with no banner ad the top: attribute value is 30.

Will Buffington
Microsoft Expression Support

Problem

Expression Web 2 install fails with an error 1923. The setup installation log may contain the following line:

Error: Installation of the "Microsoft Expression Web 2" product has reported the following error: 1923.

To view the install log:

Click "start" - "run" - type %temp% and hit enter.  The log filename will be similar to XSetup_Web_YEAR_D_M.log

Workaround

The following third-party programs have been confirmed to cause this problem if installed on a machine prior to installing Expression Web 2:

  • Web Root Antivirus
  • Web Root Spy Sweeper

To get past this error you can either uninstall the third party program, install Expression Web 2, then reinstall the third party program or you can boot the machine to selective startup mode using MSCONFIG using the following steps:

1. Click the START button, and from the RUN line, type MSCONFIG and hit ENTER.

2. The System Configuration Utility will launch. On the General tab, click the Selective Startup option. Then uncheck the boxes labeled "Load Startup Items" and "Load System Services".

3. Click on the Services tab. Find the column header at the top labeled "Service" and left click that column header to sort these services in alphabetical order. Scroll down in the list and find a service called "Windows Installer" and click it so that it has a check in the square box.

4. Click Apply and when the changes are made, the OK button will read "Close". Click this button and you will asked to reboot the machine.

5. After the machine has restarted, click OK when the System Configuration Utility information dialog appears. If the System Configuration Utility itself appears, click the red X at the top right corner of the dialog box. If you are prompted to restart the machine, click the button labeled "Exit Without Restart".

6. Install Expression Web 2.

To get the machine back to Normal mode, open MSConfig again as in Step 1 and on the General tab click the “Normal” startup option. Click Apply, the Close and reboot the machine.

[Updated 4/1/09 – willbu]

Here is a list of web sites that offer some training / tutorials on Expression Web.

http://expression.microsoft.com/en-us/cc136522.aspx
http://www.learnexpression.com
http://expression-tutorials.com
http://by-expression.com
http://any-expression.com
http://www.expression-web-designer-help.com
http://www.homepagedoctor.com/ExpressionTutorials/Tutorials.htm

If you install the trial version of Expression Web 2 then purchase a license of it you can enter your product key in by following these steps.

1.  Within the control panel open the "add/remove programs" or "programs and features" if you are using Vista.

2.  Select "Microsoft Expression Web 2" in the list then click "Change"

3.  You will see an option "convert" select this and you will be prompted to enter your product key.

For this example I'm going to create a new menu item called "test" on the "small business 1" template

1. Open your web site in Expression Web and create a new folder in your web site called "test" (w/o the quotes)
2. Create a new html file in this folder called "test.htm" (w/o the quotes)
2. Open the master.dwt file
3. In code view find the Unordered List that contains the menu items.
    <div id="navigation">
    <ul>
        <li><a href="default.html">Home</a></li>
        <li><a href="about/about.htm">About</a></li>
        <li><a href="news/news.htm">News</a></li>
        <li><a href="products/products.htm">Products</a></li>
        <li><a href="services/services.htm">Services</a></li>
        <li><a href="calendar/calendar.htm">Calendar</a></li>
        <li><a href="contact/contact.htm">Contact</a></li>
    </ul>
    </div>
4.  Copy the last list item <li> and paste it directly below itself.  Now change the location of the file to the one you created and the name of the menu item.  Your code should now look like this.
    <div id="navigation">
    <ul>
        <li><a href="default.html">Home</a></li>
        <li><a href="about/about.htm">About</a></li>
        <li><a href="news/news.htm">News</a></li>
        <li><a href="products/products.htm">Products</a></li>
        <li><a href="services/services.htm">Services</a></li>
        <li><a href="calendar/calendar.htm">Calendar</a></li>
        <li><a href="contact/contact.htm">Contact</a></li>
        <li><a href="test/test.htm">Test</a></li>
    </ul>
    </div>

5.  Save the master.dwt and select "yes" when it prompts you to update the attached pages.

Your menu should now look like this.

image

More Posts Next page »
 
Page view tracker