Re: [WiX-users] regasm in wix?

2006-12-15 Thread Erv Walter
You need to fill in the Registry table with the appropriate values.  You
can use either ProgId, Class  Co. (which will fill in the Registry
table behind the scenes when advertisement is turned off) or you can
directly use Registry elements.   Note, there is a good chance that as a
.NET COM DLL you'll have a couple extra registry keys that need to be
set beyond just what the ProgId and Class elements setup for you. 

If you are not sure what registry keys need tbe set, you can either use
tallow to generate a fragment from your DLL and take a look at that, or
you can use 'regasm /tlb /reg PATH.TO.commandlib.dll' to create a
PATH.TO.commandlib.reg file which you can look at with a text editor to
understand what needs to be set.

-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Christer
Solskogen
Sent: Friday, December 15, 2006 12:28 AM
To: wix-users@lists.sourceforge.net
Subject: [WiX-users] regasm in wix?

Our application requires that one dll is registert using regasm. How do
I do that in wix3? I was under the impression that just using Typelib
... would do it, but with the handful of things I tried I did not get
it to work.

Component Id='CommandLib' Guid='a349abc4-1832-4168-a84e-e952ac0fa09f' 
DiskId='1'
File Id='commandlib_dll' Name='CommandLib.dll' 
Source='$(var.ReleaseDir)/CommandLib.dll' Assembly='.net' 
AssemblyRegisterComInterop='yes' KeyPath='yes'  TypeLib
Id='23C76A21-7AEB-439c-BF85-700079E0E220' Language='1033' 
MajorVersion='1' MinorVersion='0'/
/File
/Component

Any pointers please?

The command I need it to run is regasm /tlb PATH.TO.commandlib.dll?

--
chs



-
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share
your
opinions on IT  business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDE
V
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

-
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT  business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


Re: [WiX-users] GenerateBootstrapper questions

2006-12-06 Thread Erv Walter
Some answers to your questions (sorry, not all):
 
#1. The official documentation for GenerateBootstrapper (the MSBuild
task) is http://msdn2.microsoft.com/en-us/library/ms164294.aspx.  I
don't know where the official documentation for the bootstrapper itself
it.  You don't need to make a package.xml file at all unless you are
creating a redistributable package.  If you need to do that, you put the
HomeSite in the product.xml file.
 
#2.  Never tried it.  Don't know if it is useful.
 
#3.  In your msbuild project you set the ApplicationFile attribute to
the filename of your .msi on the GenerateBootstrapper task (see my
sample in a previous email).  It's not embedded.  It sits side by side
with the setup.exe.  I believe you can have it be downloaded using the
ApplicationUrl attribute (at least the documentation implies that), but
I have not tested it.
 
#4.  The only things you can control are the name for your application
(using the ApplicationName attribute).  The rest of the UI is
un-configurable.
 
#5.  The bootstrapper generates a setup.exe to sit beside your .msi (and
any of your dependencies if you are not downloading them).  You could
use tools like PackageForTheWeb to pack them into a single file if you
need to, or you might be able to have everything be downloaded including
your .msi (see above) so that they only get the setup.exe.
 
#6.  You might be able to copy the existing SQL Express package and
adjust the rules in its product.xml file to make it not be installed if
SQL is already installed (you'll have to look at the product.xml and
learn its syntax by a combination of insight and trial and error--I
don't know of any documentation, but the format is pretty intuitive when
you look at it).  But you can't make dependecies optional for the user
to decide with this bootstrapper.  It doesn't support that.
 
#7. I sent you a previous email with a sample msbuild project file.  You
put your list of dependencies in the BootstrapperItems ItemGroup. 
 
#8.  No, it only supports either always downloaded or always local.
 
#8b.  If you are doing local, when you run the msbuild project, by
default it will copy the files to the output directory in the proper
directory structure.
 



From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of David
Thielen
Sent: Wednesday, December 06, 2006 12:07 PM
To: wix-users@lists.sourceforge.net
Subject: [WiX-users] GenerateBootstrapper questions



Hi;

I posted this also in the MS forums (no answer) and the MSDN managed
newsgroups (useless answer). I am hoping someone here can help.

First off, I have read the following:
http://msdn.microsoft.com/msdnmag/issues/04/10/Bootstrapper/
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnvs05/
html/custom_pkg.asp 
http://msdn2.microsoft.com/en-us/library/ms164294.aspx
http://www.gotdotnet.com/workspaces/workspace.aspx?id=ddb4f08c-7d7c-4f44
-a009-ea19fc812545

Sorry for all the questions - there is a lot of content about using the
bootstrapper to do X but none I could find about all the properties for
anything other than the samples shown. And unfortunately none showed
requiring J# (a prerequisite for us).

After reading the above (and some other pages) I have the following
questions about using this:
1) Where is complete documentation for GenerateBootstrapper - including
what to put in the package.xml to download from Microsoft (not included
in the package and not download from us but downloaded from MS if
needed):
a) .NET 2.0 framework
b) .NET 2.0 language pack if appropiate
c) J# 2.0 framework
d) J# 2.0 language pack if appropiate
e) whatever windows setup a wix built msi needs

2) Is there anywhere to get the Bootstrapper Manifest Generator and is
it worth using? The download link at
http://www.gotdotnet.com/workspaces/workspace.aspx?id=ddb4f08c-7d7c-4f44
-a009-ea19fc812545 does not work.

3) How do I set it to run our msi installer when it is done with the
prerequisites? And is it embedded in the created setup.exe or downloaded
at that time? If an option, which is recomended.

4) How do I put out name and text in the dialogs for setup.exe?

5) Is this a single file? Or is this a set of files that we need to
write an installer for?

6) Is there a way to make Sql Server Express an option and not show it
as an option if Sql Server regular or express (not only express) is
already installed?

7) Are there any samples of how we should set up our part of package.xml
and the rest of our settings - both in our msbuild.proj file and in the
xml files that list what goes in to the bootstrapper.

8) Can this be set so that it will look first on disk for the needed
install files and then on MS' website so if we put this all on disk we
can use the same bootstrapper?

8b) And if so, where do we get those files and what is the directory
structure?

I hope with answers to the above I will have at most 1 - 2 followup
questions.

thanks - dave

 

 

David Thielen


Re: [WiX-users] GenerateBootstrapper questions

2006-12-06 Thread Erv Walter
I'm sorry that I'm confusing you and that we aren't communicating well.
I thought I answered that twice now.  I'll try again.
 
In your MSBuild file, you have to specify where the bootstrapper should
get the pre-reqs.  You want them to be downloaded.  So you set the
ComponentLocation attribute of the GenerateBootstrapper element in your
msbuild project file to be HomeSite as described here:
 
ComponentsLocation: Specifies a location for the bootstrapper to look
for installation prerequisites to install. This parameter can have the
following values::
 
HomeSite: Indicates that the prerequisite is being hosted by the
component vendor.
Relative: Indicates that the preqrequisite is at the same location of
the application.
Absolute: Indicates that all components are to be found at a centralized
URL. This value should be used in conjunction with the ComponentsUrl
input parameter.
 
If ComponentsLocation is not specified, HomeSite is used by default.
 
If you also want your msi to be downloaded, you specify the location
where the MSI is hosted using the ApplicationUrl attribute.
 
I attached a sample project that uses the things above.  It produces a
single setup.exe (421k) that does the following:

*   

If WIndows Installer 3.1 is not installed (it is required by SQL
Express), it downloads it from Microsoft and installs it.
If .NET 2.0 is not installed, it downloads it from Microsoft and
installs it.
*   
If J# 2.0 is not installed, it downloads it from Microsoft and
installs it.
*   If SQL Express is not installed, it downloads it from Microsoft
and installs it.
*   
It downloads installer.msi from http://localhost/installer.msi
and runs it

In case the attachment doesn't work, here are the contents:
 
Project xmlns=http://schemas.microsoft.com/developer/msbuild/2003;
  ItemGroup
!-- Include the 'Product Code' for every package you want --
BootstrapperFile Include=Microsoft.Net.Framework.2.0
  ProductName.NET Framework 2.0/ProductName
/BootstrapperFile
BootstrapperFile Include=Microsoft.JSharp.2.0
  ProductNameMicrosoft Visual J# .NET Redistributable Package
2.0/ProductName
/BootstrapperFile
BootstrapperFile Include=Microsoft.Sql.Server.Express.1.0
  ProductNameSQL Server 2005 Express Edition/ProductName
/BootstrapperFile
BootstrapperFile Include=Microsoft.Windows.Installer.3.1
  ProductNameWindows Installer 3.1/ProductName
/BootstrapperFile
  /ItemGroup
 
  Target Name=Build
GenerateBootstrapper 
   ApplicationName=My Installer 
   ApplicationFile=installer.msi
   ApplicationUrl=http://localhost/;
   BootstrapperItems=@(BootstrapperFile) 
   Culture=en
   ComponentsLocation=HomeSite
   CopyComponents=False 
   OutputPath=bin\ /
  /Target
/Project
 



From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of David
Thielen
Sent: Wednesday, December 06, 2006 3:27 PM
To: wix-users@lists.sourceforge.net
Subject: Re: [WiX-users] GenerateBootstrapper questions



No, the oppisate. I want setup.exe to be very small and it then will
download the needed installers and run them only if needed. And it will
download them from the MS website.

 

So the user runs setup.exe and then when running, if they don't have
.NET framework installed, it downloads it from www.microsoft.com
http://www.microsoft.com/  and runs it.

 

Thanks - dave

 

 

 

David Thielen

www.windwardreports.com

303-499-2544 x1185

 

Cubicle Wars - http://www.windwardreports.com/film.htm



From: Wilson, Phil [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, December 06, 2006 2:25 PM
To: David Thielen; wix-users@lists.sourceforge.net
Subject: RE: [WiX-users] GenerateBootstrapper questions

 

You mean you want the download for Windows Installer, SQL Express, .NET
Framework, J# etc to be all in one file? Just trying to understand.

Phil Wilson 

 

 



From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of David
Thielen
Sent: Wednesday, December 06, 2006 1:15 PM
To: wix-users@lists.sourceforge.net
Subject: Re: [WiX-users] GenerateBootstrapper questions

Hi;

 

I think I'm not understanding something. I want the bootstrapper to give
me a small setup.exe that will download things like the .NET framework
only if needed on that user's computer. And I need the download to be a
single file to make it easy. How can I build this? The examples I see
all assume that the install programs for things like the .NET framework
are downloaded with setup.exe which eliminates the whole purpose of it.

 

Thanks - dave

 

 

David Thielen

www.windwardreports.com

303-499-2544 x1185

 

Cubicle Wars - http://www.windwardreports.com/film.htm



From: Erv Walter [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, December 06, 2006 12:07 PM
To: David Thielen; wix-users@lists.sourceforge.net
Subject

Re: [WiX-users] Need recomendation - including .NET redist

2006-12-05 Thread Erv Walter
Visual Studio also includes a bootstrapper that can install your
prerequisites and then launch your setup.  It can get the prereqs from
your local CD, or if you are mostly a downloaded product, it can
download the prereqs from the official microsoft site when/if they are
needed.




From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Michael
Osmond
Sent: Monday, December 04, 2006 8:33 PM
To: David Thielen; wix-users@lists.sourceforge.net
Subject: Re: [WiX-users] Need recomendation - including .NET redist


Dave,
 
You could have a look at the Microsoft Component Installer (PSetup).
It provides a bootstrap that will install your redistributables and then
your app.  The redistributables can be got from local source or the web.
http://msdn2.microsoft.com/en-us/library/ms994369.aspx
 
Michael



From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of David
Thielen
Sent: Tuesday, 5 December 2006 12:03 PM
To: wix-users@lists.sourceforge.net
Subject: [WiX-users] Need recomendation - including .NET redist


Hi;
 
We have had feedback from 4 potential customers that having .NET 2.0 as
a prerequisite with the message taking them to the download made our
installer too difficult and too complicated (and note - these are
programmers!)
 
So we need to have installing the .NET framework (and J# redist) as an
automatic part of our install. So my questions are:
 
1) Is it better to have the redist in our install, or have it that when
they click Next it downloads it and runs it automatically?
 
2a) If it's include it, anything special we have to do to have this in
our installer?
 
2b) If it's download and run, how do we set that up to go?
 
thanks - dave
-
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT  business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


Re: [WiX-users] Need recomendation - including .NET redist

2006-12-05 Thread Erv Walter
P.S. Someone may have already posted this, but the documentation for the
GenerateBootstrapper task is here:
 
http://msdn2.microsoft.com/en-us/library/ms164294.aspx
 
You'll want to look at the documentation for the ComponentsLocation
attribute at a minimum so you can decide if you want the bootstrapper to
look for the prereqs in the local folder or if you want it to download
them.



From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Erv Walter
Sent: Tuesday, December 05, 2006 3:53 PM
To: David Thielen; wix-users@lists.sourceforge.net
Subject: Re: [WiX-users] Need recomendation - including .NET redist


No, you don't have to use VS to make your MSI.  The VS 2005 bootstrapper
can be used with any MSI that you make ahead of time (e.g. using WiX).
There's not good GUI support for this model, but it works.  You just
need to make an MSBuild file yourself.  Here is our simple MSBuild file
that makes a bootstrapper for our MSI (which needs .NET 2.0):
 
Project xmlns=http://schemas.microsoft.com/developer/msbuild/2003
http://schemas.microsoft.com/developer/msbuild/2003 
  ItemGroup
!-- Include the 'Product Code' for every package you want --
BootstrapperFile Include=Microsoft.Net.Framework.2.0
  ProductName.NET Framework 2.0/ProductName
/BootstrapperFile
  /ItemGroup
 
  Target Name=Bootstrapper
GenerateBootstrapper 
   ApplicationName=Epic Interconnect Spring 2008 
   ApplicationFile=Interconnect.msi
   BootstrapperItems=@(BootstrapperFile) 
   Culture=en
   ComponentsLocation=Relative
   CopyComponents=True 
   OutputPath=bin\ /
  /Target
/Project
 
Note, you can find additional dependecy choices in C:\Program
Files\Microsoft Visual Studio 8\SDK\v2.0\BootStrapper\Packages\*.  You
need to find the depency you want and look in it's product.xml file to
find the Product code to use (e.g. Microsoft.JSharp.2.0 for J# 2.0).
 



From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Erv Walter
Sent: Tuesday, December 05, 2006 11:12 AM
To: David Thielen; wix-users@lists.sourceforge.net
Subject: Re: [WiX-users] Need recomendation - including .NET redist


Visual Studio also includes a bootstrapper that can install your
prerequisites and then launch your setup.  It can get the prereqs from
your local CD, or if you are mostly a downloaded product, it can
download the prereqs from the official microsoft site when/if they are
needed.




From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Michael
Osmond
Sent: Monday, December 04, 2006 8:33 PM
To: David Thielen; wix-users@lists.sourceforge.net
Subject: Re: [WiX-users] Need recomendation - including .NET redist


Dave,
 
You could have a look at the Microsoft Component Installer (PSetup).
It provides a bootstrap that will install your redistributables and then
your app.  The redistributables can be got from local source or the web.
http://msdn2.microsoft.com/en-us/library/ms994369.aspx
 
Michael



From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of David
Thielen
Sent: Tuesday, 5 December 2006 12:03 PM
To: wix-users@lists.sourceforge.net
Subject: [WiX-users] Need recomendation - including .NET redist


Hi;
 
We have had feedback from 4 potential customers that having .NET 2.0 as
a prerequisite with the message taking them to the download made our
installer too difficult and too complicated (and note - these are
programmers!)
 
So we need to have installing the .NET framework (and J# redist) as an
automatic part of our install. So my questions are:
 
1) Is it better to have the redist in our install, or have it that when
they click Next it downloads it and runs it automatically?
 
2a) If it's include it, anything special we have to do to have this in
our installer?
 
2b) If it's download and run, how do we set that up to go?
 
thanks - dave
-
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT  business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


[WiX-users] Installing a Service with Varying Dependencies

2006-07-18 Thread Erv Walter
We're struggling with a problem, and I'm curious if anyone has any
creative solutions they can think of.

We have a windows service that our MSI installs.  This service does some
things with MSMQ.  We want to ensure that our service has the
appropriate ServiceDependency so that Windows starts things in the
correct order during system startup.

Our WiX structure looks something like this (attributes removed to
simplify):

Component
  File/
  ServiceInstall
ServiceConfig/
ServiceDependency Id=MSMQ/
ServiceDependency Id=Eventlog/
  /ServiceInstall
  ServiceControl/
/Component

Now, in the next version of our product, the MSMQ related functionality
is optional and we will have many customers who will not need or care
about the MSMQ functionality.  We'd like to detect if MSMQ is installed
and make sure that the service is installed with the MSMQ dependency
only if MSMQ is installed (else the service won't start when MSMQ is not
installed).

The first attempt to accomplish this with WiX was to have two nearly
identical components and use conditions to choose only the correct one:

Component
  File/
  ServiceInstall
ServiceConfig/
ServiceDependency Id=MSMQ/
ServiceDependency Id=Eventlog/
  /ServiceInstall
  ServiceControl/
  ConditionMSMQ_IS_INSTALLED/Condition
/Component
Component
  File/
  ServiceInstall
ServiceConfig/
ServiceDependency Id=Eventlog/
  /ServiceInstall
  ServiceControl/
  ConditionNOT MSMQ_IS_INSTALLED/Condition
/Component

This doesn't work (in WiX v2) because of the ServiceConfig/.  We use
ServiceConfig to set the restart options correctly. WiX tries to put two
rows in the ServiceConfig table both with the same ServiceName.  This
fails because ServiceName is the primary key and the second row errors
out as a duplicate.

So, the next attempt was to move the ServiceConfig element to a
separate, shared Component that would always get installed regardless of
if MSMQ was needed or not.  This compiles into an MSI but fails at
install time because the NewService column in the ServiceConfig table is
set to 0 and the SchedServiceConfig custom action has code to verify
that the service actually exists and this check runs before the
installations script is executed (and so the service hasn't been
installed yet).

I don't like any of the options we're currently exploring, so I'm
looking for any brainstorming ideas.

Options we're currently looking at:

1. Using CustomTable to add the ServiceConfig table with the single
row we need and with NewService set to 1 and adding SchedServiceConfig
to the sequence ourselves.  Yuck.

2. Dropping the dependency from the ServiceInstall completely and adding
a custom action to conditionally call sc.exe to add the dependency back
if MSMQ is installed.  Bleh.

3. Dropping the dependency from the ServiceInstall completely and adding
code to our service itself so that when it starts up, it ensures that
MSMQ is running and attempt to start it if it isn't already running.
Windows won't know that our service depends on MSMQ, but we'll try to
replicate the logic that Windows would have used.  Bummer.

Any other suggestions?  Note, we haven't looked at WiX v3 yet (that's on
my list for today) to see if there is some new way around this issue
there.

Thanks,
Erv

-
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT  business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users