.net dll with com interop

I have a .net dll that is setup to work with classic asp and I have included an exe to use the AutomaticUpdater. The build and the update work fine except this .net dll does not get copied over when I do an update. I am using Innosetup for the install and register it with regasm and have a StrongAssemblyName and it works fine. I have done changes and full installs again and the dll is replaced correctly. But doing an update doesn't seem to work. What do I need to do to setup wyBuild/wyUpdate to replace and re-regasm if need be my dll. I've even manually changed the Assemblyversion and recompiled thinking that it is looking at that -- but to no avail.

ThanksMark

Hey Mark,

We're going to officially support Installing, uninstalling, and upgrading COM dll's in wyBuild & wyUpdate 2.7. But for now you can do it in this roundabout way:

Create 2 *.bat files. In "regasm.bat" put:

regasm %1

In "un-regasm.bat" put:

regasm %1 /unregister

Then just drag these files into the "Temporary folder" in wyBuild:

[attachment=0]wyBuild.png[/attachment]

For un-regasm.bat, make sure it executes before the update is installed. For regasm.bat make sure it executes after the update is installed.

Notice the commandline arguments are:

"%basedir%\YourFile.dll"

Just change that to whatever your dll is named, and whichever subfolder it's in (e.g. "%basedir%\Subfolder\AnotherName.dll").

wyBuild automatically replaces %basedir% with wherever the base directory is on your users' computer (e.g. C:\Program Files\YourApp\)

Thanks so much for the quick reply. Worked great. Couple things and I don't know if you have a variable for this or not, but I had to give the full path to regasm and I had to change it to pass just the file without the extension to get it to work for my situation.

regasm.batC:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\regasm /tlb:%1.tlb %1.dll /codebasepause

Command Line Switches:"%basedir%\ctest"

My only concern is obviously if its not Windows -- but maybe WinNT ...

Thanks againMark

Thanks so much for the quick reply. Worked great. Couple things and I don't know if you have a variable for this or not, but I had to give the full path to regasm and I had to change it to pass just the file without the extension to get it to work for my situation.

regasm.batC:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\regasm /tlb:%1.tlb %1.dll /codebasepause

Command Line Switches:"%basedir%\ctest"

My only concern is obviously if its not Windows -- but maybe WinNT ...

Thanks againMark

Try:

%windir%\Microsoft.NET\Framework\v2.0.50727\regasm /tlb:%1.tlb %1.dll /codebasepause

Where %windir% is automatically replaced by Windows with either "C:\Windows" or "C:\WINNT" (or any other directory) depending on the version and language of Windows.

I'm waiting for the COM registration support too.

ThanksAlessandro