Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
HomeAnnouncementsFree MagazinesWhite PapersSubmit Content
Discussion GroupsASP.NETWindows FormsLanguages.NET FrameworkVisual Studio.NET
Articles.NET FrameworkASP.NETToolsWindows Forms
.NET DirectoryOpen Source ProjectsUser GroupsWeb Resources
Related Topics
Visual Basic 6SQL ServerMS AccessOther DB ProductsMS Server ProductsMore Topics ...

.NET Forum / .NET Framework / Setup / March 2005

Tip: Looking for answers? Try searching our database.

NightMerge Modules

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
sergega4@yahoo.fr - 25 Mar 2005 19:09 GMT
Trying to install a .exe generated by MS VSC++.Net ("Initiation" for my own),
on a "non developper" PC, I 've receive like many of us, "missing
MFC71.dll...".
After discussing on the newsgroup someone told me to use the .msm (Merge
Modules techniques) supplied with my VSC++.net in the "Program Files\Commun
files\Merge Modules" folder and related to the missing .dlls not
distributable (If I have understood well the MS "redist.txt").
I've open a deployment project, add anything I needed and use the "Project"
"add" "merge modules" to choose the three .msm files provided to palliate the
lack of *71.dll on client's PC.

Las... the running of the setup produced by a "deployment project" has been
to copy the 3 .msm files in the same folder than my .exe (why, I don't know ?
I thought the mechanism will be to merge them into the .exe or to copy them
in a known (by the exe) folder like the .dll in the "Windows\system32"
folder...? could anyone explain me what is the "completing mechanism" once
working) and the same fatidic message appears when trying to launch my .exe.
"missing mfc71.dll...."
Help !
Thanks
Xav

   



 
Phil Wilson - 25 Mar 2005 19:21 GMT
You don't *copy* the merge modules to the client system, you right-click the
project in Solution Explorer of the Setup project and select Add Merge
Module. A merge module is like a pre-packaged section of an MSI file so it
needs merging into your MSI setup project.
Signature

Phil Wilson [MVP Windows Installer]
----

> Trying to install a .exe generated by MS VSC++.Net ("Initiation" for my own),
> on a "non developper" PC, I 've receive like many of us, "missing
[quoted text clipped - 17 lines]
> Thanks
> Xav
sergega4@yahoo.fr - 25 Mar 2005 20:09 GMT
Thanks Phil,  but what's you explain (and it makes sense) is already what I
ve tried to do and describe in my notes below.
Unfortunatly, at the use, it (the setup) copies the .msm in the same
directory of my .exe and those always miss the .dll when trying to launch
(for this time on a 98 scdEd, I will try on other systems).
Gloups, I don't know?...
Any idea ?

Xavier

> You don't *copy* the merge modules to the client system, you right-click the
> project in Solution Explorer of the Setup project and select Add Merge
[quoted text clipped - 29 lines]
> > Thanks
> > Xav
Phil Wilson - 25 Mar 2005 21:43 GMT
If those actual .msm files are being installed onto the system, you must be
doing it wrong. I'm not sure what you're doing, but the .msm files do not
need to be on disk (are they in the Application Folder - delete them if they
are). You should be getting the Dlls on disk, that's the way it's supposed
to work.
Signature

Phil Wilson [MVP Windows Installer]
----

> Thanks Phil,  but what's you explain (and it makes sense) is already what I
> ve tried to do and describe in my notes below.
[quoted text clipped - 39 lines]
> > > Thanks
> > > Xav
sergega4@yahoo.fr - 25 Mar 2005 23:59 GMT
> If those actual .msm files are being installed onto the system, you must be
> doing it wrong.

You're absolutely right but it didn't tell me where I'm wrong.
To summarize, I'd say :

-Open a new deployment project
-Create n subfolders in my Application Folder
-Put files where desired (for instance the .exe files (in an exe folder) the
ones I'd like to see working on client's PC)
-Click the Focus to the (main at the root of Folders) "System Files target
computer" and in the "Project" menu, choose "Add" and "Merge Modules" (they
appear in the right subwindows - sol explorer - with the list of the whole
embedded files) and then
- Generate the solution to get a setup.exe

Am I wrong anywhere ?
below, another question

> I'm not sure what you're doing, but the .msm files do not
> need to be on disk (are they in the Application Folder - delete them if they
> are).

>You should be getting the Dlls on disk, that's the way it's supposed
> to work.

I wonder about your last sentence.

On the "client" PC where the application is supposed to be set on, what are
the news files the installation is supposed to deliver, and are they visible
in the explorer ? Are the .msm supposed to be copy anywhere (I don't think
so, it should be logical to imagine that if Microsoft does'nt want to deliver
directly its .dlls, those ones could be hiden in the .exe or these .exes can
dyn-link to something (but what ?).
   
Thanks

Xavier
> > Thanks Phil,  but what's you explain (and it makes sense) is already what
> I
[quoted text clipped - 46 lines]
> > > > Thanks
> > > > Xav
Phil Wilson - 26 Mar 2005 19:26 GMT
That's right. I'll do another test myself to verify, but it also occurs to
me that your problem might be that each of your exes needs these DLLs, but
you've got them all in different folders. Those DLLs are side by side, so
every exe needs them. Merge modules are a packaging mechanism, but they
don't solve the problem of you having multiple exes in different folders
that all need their own copy of these DLLs.
Signature

Phil Wilson
[Microsoft MVP-Windows Installer]
Definitive Guide to Windows Installer
http://apress.com/book/bookDisplay.html?bID=280

>> If those actual .msm files are being installed onto the system, you must
>> be
[quoted text clipped - 104 lines]
>> > > > Thanks
>> > > > Xav
sergega4@yahoo.fr - 28 Mar 2005 02:39 GMT
> That's right. I'll do another test myself to verify, but it also occurs to
> me that your problem might be that each of your exes needs these DLLs, but
> you've got them all in different folders. Those DLLs are side by side, so
> every exe needs them. Merge modules are a packaging mechanism, but they
> don't solve the problem of you having multiple exes in different folders
> that all need their own copy of these DLLs.

My exes are in a common folder, I guess I misunderstood what the "merges"
were supposed to do. The only working case I meet was the one where the dlls
embedded in the .msm were deployed by the setup in the same directory than
the exe... which obviously works, but if it is THE searched case what is the
interest of the merges technique since we could directly include the dlls in
the exe folders by ourselves (via the setup) ???
If my treatment is the correct one, I misunderstand its interest,
either still I'ven’t I applied the good one, since I've never succeeded to
get the good explanation on what is the underlying idea and what are we
supposed to see setup by the install on the non-dev PC that makes the exes
run if the dlls are not present ?
Maybe I'll finally get the idea, one day ?
Who knows ?
Xavier  



> >> If those actual .msm files are being installed onto the system, you must
> >> be
[quoted text clipped - 104 lines]
> >> > > > Thanks
> >> > > > Xav
Phil Wilson - 28 Mar 2005 16:52 GMT
I think you're seeing this because those merge modules are internally
defaulting to install to TARGETDIR, and that's your Application Folder. I
was thinking there's  way to set the destination for the merge module
content, but there doesn't seem to be a way to do that in VS.
--
Phil Wilson
[Microsoft MVP-Windows Installer]
Definitive Guide to Windows Installer
http://apress.com/book/bookDisplay.html?bID=280

>> That's right. I'll do another test myself to verify, but it also occurs
>> to
[quoted text clipped - 146 lines]
>> >> > > > Thanks
>> >> > > > Xav
sergega4@yahoo.fr - 28 Mar 2005 23:45 GMT
> I think you're seeing this because those merge modules are internally
> defaulting to install to TARGETDIR, and that's your Application Folder.

Yes

> I  was thinking there's  way to set the destination for the merge module
> content, but there doesn't seem to be a way to do that in VS.

Yes it seems, but is it legal to provide (since it is the case) the MS dlls
even if this is done using MS "recommandation" (Use Merge Modules !).
The merge modules content are obsviously the 3 interesting (mfc71, msvcp71
and msvcr71) dlls in my case, which means deploying these files has the same
result that copying them to the non-dev PC like anyone could have done
without merge...?
I thought the mechanism would be more subtil (inclusion of assembly in the
exe deployed by the setup compensating the lack of dlls, or "dynload" of
something protected by the system).
I still wonder.
Thanks Phil.
Xavier  

>  --
> Phil Wilson
[quoted text clipped - 152 lines]
> >> >> > > > Thanks
> >> >> > > > Xav

Free Magazines

Get these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...

Oracle MagazineNetwork ComputingComputer WorldBio-IT WorldeWeekInformation WeekInfosecurity
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.