BCommand-LineUtilities CertPrs8 / MCAD/MCSD XML Web Services and Server Components Development with Visual Basic .NET / Lind / 222653-6 / Chapter B P:\010Comp\CertPrs8\653-6\appb.vp Wednesday, October 30, 2002 9:26:59 AM Color profile: Generic CMYK printer profile Composite Default screen I n addition to the compilers for Visual Basic .NET (vbc.exe), C++ (cl.exe), and C# (csc.exe), the Microsoft .NET Framework SDK adds a number of tools designed to make it easier for you to create, deploy, and manage applications and components that target the .NET Framework. This appendix will introduce these tools and will also detail the command-line usages of vbc.exe. Command Utilities In order to be able to run these command-line utilities, you must configure the environment properly. The Visual Studio .NET installation includes a command file (VCVARS32.bat) that configures the command environment properly by setting the path variable to include the Visual Studio .NET directory. The command file is installed in the \bin directory of your installation (the default is c:\Program Files\ Microsoft Visual Studio.NET\vc7\bin). The command file is configured during the installation of Visual Studio to correspond to your computer’s setup. Do not replace a missing or damaged VCVARS32.bat file with a VCVARS32.bat from another machine. Rerun setup to replace the missing file. To run VCVARS32.bat, you can execute it from the path or you can use the shortcut. Select Start | Programs | Microsoft Visual Studio .NET | Visual Studio .NET Tools | Visual Studio .NET Command Prompt. We recommend that you create a shortcut to the .NET command prompt on your desktop and in the Windows taskbar. The .NET Framework SDK tools are grouped according to use: ■ Debugging tools (see Table B-1) ■ Configuration and deployment tools (see Table B-2) ■ Security tools (see Table B-3) ■ General tools (see Table B-4) Debugging Tools CertPrs8 / MCAD/MCSD XML Web Services and Server Components Development with Visual Basic .NET / Lind / 222653-6 / Appendix B 2 Appendix B: Command-LineUtilities CertPrs8 / MCAD/MCSD XML Web Services and Server Components Development with Visual Basic .NET / Lind / 222653-6 / Appendix B Tool Description Microsoft CLR Debugger (DbgCLR.exe) Provides debugging services with a graphical interface to help application developers find and fix bugs in programs that target the runtime. Runtime Debugger (Cordbg.exe) Provides command-line debugging services using the Common Language Runtime Debug API. It is used to find and fix bugs in programs that target the runtime. TABLE B-1 The .NET Framework SDK Debugging Tools P:\010Comp\CertPrs8\653-6\appb.vp Wednesday, October 30, 2002 9:27:00 AM Color profile: Generic CMYK printer profile Composite Default screen Configuration and Deployment Tools CertPrs8 / MCAD/MCSD XML Web Services and Server Components Development with Visual Basic .NET / Lind / 222653-6 / Appendix B Command Utilities 3 CertPrs8 / MCAD/MCSD XML Web Services and Server Components Development with Visual Basic .NET / Lind / 222653-6 / Appendix B Tool Description Assembly Cache Viewer (Shfusion.dll) Lets you to view and manipulate the contents of the Global Assembly Cache using Windows Explorer. Assembly Linker (Al.exe) Allows you to use either resource files or Microsoft Intermediate Language (MSIL) files to generate a file with an assembly manifest. Assembly Registration tool (Regasm.exe) Registers .NET Framework classes to the Registry, which allows COM clients to create .NET Framework classes transparently. Assembly Binding Log Viewer (Fuslogvw.exe) Displays log-file information for failed assembly binding. This information can help you diagnose the reasons the .NET Framework has problems locating an assembly at run time. Global Assembly Cache tool (Gacutil.exe) This tool allows you to view and manipulate the contents of the Global Assembly Cache and download cache. You can use Gacutil.exe in build scripts, makefile files, and batch files. Installer tool (Installutil.exe) Allows you to install and uninstall server resources by executing the installer components of a specified assembly. Isolated Storage tool (Storeadm.exe) Displays and manages all existing stores for the currently logged-on user. Native Image Generator (Ngen.exe) Lets you create a native image from a managed assembly and install the image in the native image cache on the local computer. .NET Framework Configuration tool (Mscorcfg.msc) Provides a graphical interface for managing .NET Framework security policy and applications that use remoting services. This tool also allows you to manage and configure assemblies in the Global Assembly Cache. .NET Services Installation tool (Regsvcs.exe) Allows you to add managed classes to Windows 2000 Component Services (COM+) by loading and registering the assembly and generating, registering, and installing the type library into an existing COM+ 1.0 application. Soapsuds tool (Soapsuds.exe) Lets you compile client applications that communicate with XML web services. The technique used is called remoting. Type Library Exporter (Tlbexp.exe) Generates a type library from a Common Language Runtime assembly. Type Library Importer (Tlbimp.exe) Converts the type definitions found within a COM type library into equivalent definitions in managed metadata format. Web Services Description Language tool (Wsdl.exe) Generates the code for XML web services and XML web service clients, XML Schema Definition (XSD) schema files, and the .disco discovery documents from WSDL (Web Services Description Language) contract files. TABLE B-2 The .NET Framework SDK Configuration and Deployment Tools P:\010Comp\CertPrs8\653-6\appb.vp Wednesday, October 30, 2002 9:27:00 AM Color profile: Generic CMYK printer profile Composite Default screen Security Tools 4 Appendix B: Command-LineUtilities CertPrs8 / MCAD/MCSD XML Web Services and Server Components Development with Visual Basic .NET / Lind / 222653-6 / Appendix B Tool Description Web Services Discovery tool (Disco.exe) Allows you to discover the URLs of XML web services located on a web server. XML Schema Definition Tool (Xsd.exe) Generates XML schemas that follow the XSD language proposed by the World Wide Web Consortium (W3C). This tool generates Common Language Runtime classes and DataSet classes from an XSD schema file. TABLE B-1 The .NET Framework SDK Configuration and Deployment Tools (continued) Tool Description Certificate Creation Tool (Makecert.exe) Creates X.509 certificates for testing purposes only. Certificate Manager tool (Certmgr.exe) Manages certificates, certificate trust lists (CTLs), and certificate revocation lists (CRLs). Certificate Verification tool (Chktrust.exe) Verifies the validity of a file signed with an X.509 certificate. Code Access Security Policy tool (Caspol.exe) Allows you to examine and modify security policies for the machine, user, and enterprise-level code access. File Signing tool (Signcode.exe) Signs a portable executable (PE) file with an Authenticode digital signature. Permissions View tool (Permview.exe) Allows you to view the minimal, optional, and refused permission sets requested by an assembly. You can also use this tool to display the declarative security used by an assembly. PEVerify tool (PEVerify.exe) Conducts MSIL type-safety verification checks and metadata validation checks on an assembly. Secutil tool (Secutil.exe) Extracts public-key information or Authenticode publisher certificates from an assembly. The output is formatted to be incorporated into code. Set Registry Tool (Setreg.exe) Allows you to change the Registry settings for the Software Publishing State keys. Software Publisher Certificate Test tool (Cert2spc.exe) Tests a Software Publisher’s Certificate (SPC), or creates an SPC from one or more X.509 certificates. Strong Name tool (Sn.exe) Allows you to create assemblies with strong names. TABLE B-3 The .NET Framework SDK Security Tools P:\010Comp\CertPrs8\653-6\appb.vp Wednesday, October 30, 2002 9:27:00 AM Color profile: Generic CMYK printer profile Composite Default screen Visual Basic .NET Compiler (vbc.exe) 5 CertPrs8 / MCAD/MCSD XML Web Services and Server Components Development with Visual Basic .NET / Lind / 222653-6 / Appendix B General Tools Visual Basic .NET Compiler (vbc.exe) In order to compile and run a Visual Basic .NET program, you will need to have the .NET Framework installed on your computer. Microsoft has made the .NET Framework available as a free upgrade, and you can either download it from http://msdn.microsoft.com (approximately 130MB) or order a CD that contains the .NET Framework. Tool Description Common Language Runtime Minidump tool (Mscordmp.exe) Creates a file containing a core dump of information that can be useful when analyzing system issues in the runtime. License Compiler (Lc.exe) Allows you to create a .licenses file that can be embedded in a Common Language Runtime executable. It reads text files that contain licensing information. Management Strongly Typed Class Generator (Mgmtclassgen.exe) Allows you to quickly generate an early-bound class for a specified Windows Management Instrumentation (WMI) class. MSIL Assembler (Ilasm.exe) Generates a PE file from Microsoft Intermediate Language (MSIL). MSIL Disassembler (Ildasm.exe) Produces a MSIL source file from a Portable Executable (PE) file. Resource File Generator tool (Resgen.exe) Converts text files and .resx (XML-based resource format) files to .NET Common Language Runtime binary .resources files that can be embedded in a runtime binary executable or compiled into satellite assemblies. Windows Forms ActiveX Control Importer (Aximp.exe) Converts type definitions in a COM type library for an ActiveX control into a Windows Forms control. Windows Forms Class Viewer (Wincv.exe) Finds managed classes matching a specified search pattern, and displays information about those classes using the Reflection API. Windows Forms Resource Editor (Winres.exe) Allows you to quickly and easily localize the Windows Forms forms in your application using a GUI tool. TABLE B-4 The .NET Framework SDK General Tools P:\010Comp\CertPrs8\653-6\appb.vp Wednesday, October 30, 2002 9:27:00 AM Color profile: Generic CMYK printer profile Composite Default screen 6 Appendix B: Command-LineUtilities CertPrs8 / MCAD/MCSD XML Web Services and Server Components Development with Visual Basic .NET / Lind / 222653-6 / Appendix B After installation, the Visual Basic .NET compiler is available from the command prompt to create Portable Executable (PE) files from your source files (see the previous “Command Utilities” section for information on how to set up the environment for use with command-line tools). Using the Visual Basic .NET Compiler (vbc.exe) is rather complicated because it has a large family of command-line options that control the behavior of the compiler. The next section will give you an overview of most of the command-line switches that are available. Command-Line Syntax In Table B-5, you can see all the command-line switches understood by the Visual Basic .NET compiler. To get an instant listing of the command-line switches, you need only execute the vbc.exe program with the /help switch to produce the following listing: C:\>vbc /help Microsoft (R) Visual Basic .NET Compiler version 7.00.9466 for Microsoft (R) .NET Framework version 1.00.3705.209 Copyright (C) Microsoft Corporation 1987-2001. All rights reserved. Visual Basic .NET Compiler Options - OUTPUT FILE - /out:<file> Specifies the output file name. /target:exe Create a console application (default). (Short form: /t) /target:winexe Create a Windows application. . Option Description @ Specify a response file. /? List compiler options to stdout. /addmodule Specify one or more modules to be part of this assembly. /baseaddress Specify the preferred base address at which to load a DLL. /bugreport Create a file that contains information that makes it easy to report a bug. /checked Specify whether integer arithmetic that overflows the bounds of the data type will cause an exception at run time. /codepage Specify the code page to use for all source-code files in the compilation. TABLE B-2 The vbc.exe Command-Line Switches P:\010Comp\CertPrs8\653-6\appb.vp Wednesday, October 30, 2002 9:27:00 AM Color profile: Generic CMYK printer profile Composite Default screen Visual Basic .NET Compiler (vbc.exe) 7 CertPrs8 / MCAD/MCSD XML Web Services and Server Components Development with Visual Basic .NET / Lind / 222653-6 / Appendix B Option Description /debug Emit debugging information. /define Define preprocessor symbols. /doc Process documentation comments to an XML file. /filealign Specify the size of sections in the output file. /fullpaths Specify the absolute path to the file in compiler output. /help List compiler options to stdout. /incremental Enable incremental compilation of source-code files. /lib Specify the location of assemblies referenced via /reference. /linkresource Create a link to a managed resource. /main Specify the location of the Main() method. /nologo Suppress compiler banner information. /nostdlib Do not import standard library (mscorlib.dll). /noconfig Do not compile with the global or local versions of vbc.rsp. /nowarn Suppress the compiler’s ability to generate specified warnings. /optimize Enable or disable optimizations. /out Specify output file. /recurse Search subdirectories for source files to compile. /reference Import metadata from a file that contains an assembly. /resource Embed a .NET Framework resource into the output file. /target Specify the format of the output file using one of four options: /target:exe /target:library /target:module /target:winexe /unsafe Compile code that uses the unsafe keyword. /utf8output Display compiler output using UTF-8 encoding. /warn Set warning level. /warnaserror Promote warnings to errors. /win32icon Insert an .ico file into the output file. /win32res Insert a Win32 resource into the output file. TABLE B-5 The vbc.exe Command-Line Switches (continued) P:\010Comp\CertPrs8\653-6\appb.vp Wednesday, October 30, 2002 9:27:00 AM Color profile: Generic CMYK printer profile Composite Default screen Examples The Visual Basic .NET compiler commands can be typed in at the command-line prompt or as part of command files used to build the application. The following examples are executed from the command prompt: ■ Compiles File.vb producing File.exe: vbc File.vb ■ Compiles File.vb producing File.dll: vbc /target:library File.vb ■ Compiles File.vb and creates Hence.exe: vbc /out:Hence.exe File.vb ■ Compiles all of the Visual Basic .NET files in the current directory, with optimizations on and defines the DEBUG symbol. The output is File2.exe: vbc /define:DEBUG /optimize /out:File2.exe *.vb ■ Compiles all of the Visual Basic .NET files in the current directory, producing a debug version of File2.dll. No logo and no warnings are displayed: vbc /target:library /out:File2.dll /warn:0 /nologo /debug *.vb ■ Compiles all of the Visual Basic .NET files in the current directory to Thusly.hence (a DLL): vbc /target:library /out:Thusly.hence *.vb 8 Appendix B: Command-LineUtilities CertPrs8 / MCAD/MCSD XML Web Services and Server Components Development with Visual Basic .NET / Lind / 222653-6 / Appendix B P:\010Comp\CertPrs8\653-6\appb.vp Wednesday, October 30, 2002 9:27:00 AM Color profile: Generic CMYK printer profile Composite Default screen . File.vb producing File.exe: vbc File.vb ■ Compiles File.vb producing File.dll: vbc /target:library File.vb ■ Compiles File.vb and creates Hence.exe: vbc /out:Hence.exe. (see Table B- 3) ■ General tools (see Table B- 4) Debugging Tools CertPrs8 / MCAD/MCSD XML Web Services and Server Components Development with Visual Basic