The License Compiler (Lc.exe) throws an exception when a .NET Framework 2.0 application consumes licensed components on a computer that is running a 64-bit operating system

Symptoms

Consider the following scenario. You build a Microsoft .NET Framework 2.0-based application in Microsoft Visual Studio 2005. The application consumes licensed components on a computer that is running a 64-bit operating system. However, you compiled the application for a 32-bit operating system. In this scenario, the License Compiler (Lc.exe) throws an exception that resembles the following:
Exception occurred creating type 'LicensedComponent.UserControl1, LicensedComponent, Version=1.0.1.100, Culture=neutral, PublicKeyToken=null' System.ComponentModel.LicenseException: A valid license cannot be granted for the type LicensedComponent.UserControl1. Contact the manufacturer of the component for more information. C:\Documents and Settings\Administrator\Desktop\LC\LCIssue\64BitIssue\Properties\licenses.licx 1 64BitIssue

Cause

This problem occurs because the License Compiler always runs as a 64-bit application on a computer that is running a 64-bit operating system. However, the License Compiler does not support 32-bit applications that are running on 64-bit operating systems. the License Compiler only supports 32-bit applications that are running on 32-bit operating systems.

Resolution

To resolve this problem, build a binary file to specify that the application is built for a 32-bit operating system. Build the binary file by using the appropriate flags of the License Compiler.

Note Do not use the Ldr64.exe command to force all code to run as a 32-bit application.

Status

Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.

More Information

For more information about the License Compiler, visit the following Microsoft Developer Network (MSDN) Web site:
Propriedades

ID do Artigo: 913961 - Última Revisão: 3 de dez de 2007 - Revisão: 1

Comentários