Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 1045651
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 16, 20262026-05-16T16:01:05+00:00 2026-05-16T16:01:05+00:00

Given an installer generated with a VS2010 Setup Project, I would like to swap

  • 0

Given an installer generated with a VS2010 Setup Project, I would like to swap out a .NET DLL with another one without changing the name.

I am already altering the msi file according to this question, swapping out the contents of an entry in the “Binary” table.

I have located the file in question using Orca. It resides in the only cabinet file. I have located this cabinet file in the “Media” table. I’m not sure how to change this cabinet file (API) and I suspect I’d have to change some information in the MSI database too (the “ProcessorArchitecture” record for the assembly in the “MsiAssemblyName” table).

Rationale: I’m making an installer for a Autodesk Revit 2011 plugin. These are registered using an assembly RevitAddinUtility.dll which must be bundled with the installer. This assembly comes in two flavors, one for 32-bit and one for 64-bit installations. I need to swap in the correct version when creating the installer, to avoid writing more than one installers.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-16T16:01:06+00:00Added an answer on May 16, 2026 at 4:01 pm

    Here is a workaround I’m using in the meantime:

    • add both files, one named RevitAddinUtility.dll the other RevitAddinUtility64.dll
    • in the PostBuild-Event, ask the user if the setup project should be for 64bit.
    • if yes, then change the names of the files:

      If 6 = MsgBox("Build for 64bit?", 4, "Setup PostBuild event for DesignPerformanceViewer") Then
          Dim installer : Set installer = Wscript.CreateObject("WindowsInstaller.Installer")
          Dim database : Set database = installer.OpenDatabase(PATH_TO_MSI, msiOpenDatabaseModeTransact)
          Dim sqlQuery : sqlQuery = "SELECT `FileName`, `Component_` FROM File"
          Dim view : Set view = database.OpenView(sqlQuery)
          view.Execute
          Dim record : Set record = view.Fetch
          While Not record Is Nothing        
              If InStr(record.StringData(1), "RevitAddInUtility.dll") Then  
                  record.StringData(1) = "REVITA~2.DLL|RevitAddInUtility32.dll"
                  view.Modify msiViewModifyUpdate, record    
              ElseIf InStr(record.StringData(1), "RevitAddInUtility64.dll") Then    
                  record.StringData(1) = "REVITA~1.DLL|RevitAddInUtility.dll"
                  view.Modify msiViewModifyUpdate, record    
              End If    
              Set record = view.Fetch
          Wend
          database.Commit   
      End If
      
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

How could one test whether a set of modules is installed, given the names
I'm developing an Asp.Net 3.5 application and I need to print some application generated
The web designer has given me HTML which looks like: <div .... style=background: transparent
net application. .exe generated is sufficient to use software. since I have 700 MB
Is there any way how to run the setup.exe bootstrapper generated by VS2008 with
I've upgraded a [.vdproj MSI generator project built into VS2008] System.Configuration.Install.Installer with a ServiceProcessInstaller
Given this .rvmrc rvm install 1.9.2-p290 Every time I cd I get Already installed
I have installed zeromq 2.1.11 on mac os x using the steps given on
My program installation sometimes gives the following error in the installer log: `Failed to
to know which Apps are installed on a given device i have followed the

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.