Archive

Archive for the ‘IT Support’ Category

Visual Studio Setup (deployment) project

August 7, 2009 amiraryani 1 comment

Reading the Microsoft support article about using the Setup project in Visual Studio:

In order to create a Setup deployment project :

  1. Start a new project by doing one of the following:
    • On the File menu, point to New, and then click Project.

      -or-

    • If you have an project open that you would like to create a setup package for, right-click Solution MyProject (where the name of your project is MyProject) in the Solution Explorer, point to Add, and then click New Project.
  2. In the New Project dialog box, select Setup and Deployment Projects in the Project Type pane, and then select the type of setup that you want in the Templates pane.

    The project is added to the Solution Explorer, and then the File System Editor opens.

  3. In the Properties dialog box, select the ProductName property, and then type the name of your product.

And to add files to the Setup project:

  1. In the File System Editor, select the Application Folder node.
  2. Right-click the Application folder, and then on the Action menu, click Add, File. In the Add Files dialog box, browse to select any files that you need to add to your application.

    NOTE: If you already have an application project in your solution, you can add the project outputs by selecting Project Outputs instead of File.

  3. To add an existing merge module to your setup package (this is not possible for a Cab project), right-click the name of your setup package in the Solution Explorer. Click Add, and then click Merge Module. In the Add Modules dialog box, browse to select any merge modules that you need to add to your application.

To create a shortcut for the installed program:

  1. Open the File System Editor: from the View menu, point to Editor, and then click File System.
  2. Open the application folder that contains the file that you want to create a shortcut for.
  3. Right-click the file that you want to create a shortcut to.
  4. Click Create Shortcut.
  5. A shortcut will be created in the same folder as the original file.
  6. Drag the shortcut to the desired folder. For example, if you want to create a shortcut in your Program menu, drag the shortcut to the Programs menu folder; if you want to create a shortcut on the Start menu, drag the shortcut to the Start menu folder. The folder location of the shortcut can also be changed through the folder field of the Properties Window.

To register COM objects as part of the installation:

  • Add a COM object to your Visual Studio deployment project.
  • In the Solution Explorer, right-click the module that you just added, and then click Properties.

    NOTE: The Properties window contains a table with two columns and x number of rows (the number of rows depends on the project). The left column lists the specific properties. The right column is explained in step 4.

  • Go to Properties for this module (located by default in the upper-right corner of the .NET Deployment project), and then click Registry property.

    NOTE: The Registry property specifies whether a file, assembly, or project output group should be registered on a target computer during installation.

  • There is a list box in the right column of the Registry property, which displays several options for you to choose from. Note the following details for an explanation of these options:
    • For assembly, registration is not normally required, and therefore the default is DoNotRegister (this means that the item will not be registered during the installation).
    • For a COM module, you have the options of COM, COMRelativePath, and COMSelfReg. Any one of those three options will register the COM module during the installation.

      Note the following details about each choice:

    • COM: The module will be registered as a COM object by the Windows Installer engine. The deployment project will update the Class table, ProgID table, and other tables in the Registry Tables group of the corresponding .msi file. This is the recommended way to register a COM module.
    • COMRelativePath: The module will be registered as an isolated COM object by the Windows Installer engine. Note that this module will be used only by the application that the module is installed with.
    • COMSelfReg: The installer calls the DllRegisterServer function of that module at the time that you install the module and the DllUnregisterServer function at the time that you uninstall the module. The deployment project will update the SelfReg table of the corresponding .msi file. It is not recommended that the installation package use self-registration. Instead, the installation package should register modules by authoring one or more of the other tables provided by the installer for this purpose (that is, select the COM or COMRelativePath options). Many of the benefits of having a central installer service are lost with self-registration, because self-registration routines tend to hide critical configuration information.

    Referemces:

    1. http://support.microsoft.com/kb/307353
    2. http://support.microsoft.com/kb/307358
    3. http://support.microsoft.com/kb/307367

    Repair .Net 2: missing Netfx20a_x86.msi

    June 30, 2009 amiraryani Leave a comment

    In my previous post I mentioned about a repair process for .Net 2 in order to host WCF in IIS . However, after following Microsoft instruction on repair process you may face an annoying issue where Windows installer can not find Netfx20a_x86.msi.

    Netfx20a_x86.msi is a component of .Net 3.5 and it will get extracted to a folder such as “C:\5409af1fab5096fc4d07947959\wcu\dotNetFramework\dotNetFX20″ as part of the install process. I tried to extract the file from the folder and use it for repairing .Net 2.0 but it did not work. After providing the msi file it will look for the setup.exe.

    Solution: Ignore repairing .Net 2 and repair .Net 3 (or 3.5 if installed). In my case repairing .Net 3.5 fixed the issue in IIS.

    Read/write Excel and Access files without installing MS Office

    March 25, 2009 amiraryani Leave a comment

    I faced an issue in multiple projects where a software application uses Microsoft Office libraries to read/write Excel or Access files, but the Microsoft Office can not be installed to the target (application) environment.  In such cases the missing DLLs stop application from working. 

    To work around this problem there is a installset for 2007 Office System Driver: Data Connectivity Components which can install required DLLs on any computer.  You can download and deploy this package as part of your product. At this stage I am not aware of any restriction on using this installset, and if you find such a restriction please leave me a comment on this post. 

    To download the package please refer to Microsoft Download Centre: 

    URL: http://www.microsoft.com/downloads/details.aspx?familyid=7554F536-8C28-4598-9B72-EF94E038C891&displaylang=en

    File name: AccessDatabaseEngine.exe

    MSDN: To use this download

    1. If you are the user of an application, consult your application documentation for details on how to use the appropriate driver.
    2. If you are an application developer using OLEDB, set the Provider argument of the ConnectionString property to “Microsoft.ACE.OLEDB.12.0”
    3. If you are connecting to Microsoft Office Excel data, add “Excel 12.0” to the Extended Properties of the OLEDB connection string.
    4. If you are application developer using ODBC to connect to Microsoft Office Access data, set the Connection String to “Driver={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=path to mdb/accdb file”
    5. If you are application developer using ODBC to connect to Microsoft Office Excel data, set the Connection String to “Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=path to xls/xlsx/xlsm/xlsb file”

    Additional note: If in the source code one of Office components is instantiated then 2007 Office System Driver: Data Connectivity Components will not help. For example to run the following code it is required to have MS Excel installed on the system.

    Dim objExcel As Object = CreateObject("Excel.Application")