473,403 Members | 2,183 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,403 software developers and data experts.

How to deploy private Assemblies with VC2005 SP1

Dear Group,

i develop an app with MSVC++ 2005 pro. My app should not use any
installation. It's only a "packing out the zip and run it"-installation.

So i use private assemblies with manifests and DLLs in the app directory
itself.

All works fine with MSVC2005 Pro PRE SP1. I packed into my app-zip also the
Microsoft.VC80.CRT.manifest file and the redist-dll msvcr80.dll (i got them
from C:\Programme\Microsoft Visual Studio
8\VC\redist\x86\Microsoft.VC80.CRT\) and my app runs out of the box even if
the target pc has not installed any MSVC or sth. like that.

This week i installed the SP1 final for MSVC2005. And after that i cannot
deploy any program compiled with that SP1-updated compiler with private
assemblies anymore.

The app runs well on pc's which have MSVC installed. But on "clean" pcs the
app won't start and display an "component is missing. Re-install the
application" error dialog.

depends.exe, on the target machine, reports only "There were problems while
loading the application" but there are no errors (red lines, missing files
or whatever) in the log.

I checked the versioning of the CRT DLL and the versionnumbers in the
manifests (the CRT Manifest and the app embedded manifest), but can't figure
out whats going wrong there. Of course i use the new installed SP1 CRT-DLL
with version number 8.0.50727.762. And this number is also in the manifests.

Linking statically the CRT is not an option as i have to use third party
libs as well, that are build in /MD compiler mode and cant be rebuild in
/MT. And mixing up /MD and /MT compiles end up in a error hell (undefined
externals). The app, compiled with the pre SP1 version of MSVC uses this
libs also, and this libs havent changed in between. So the error hasn't
anything to do with this libs.

My question is, which dlls and manifests with wich version numbers i have to
ship together with my application so that a MSVC++ SP1 compiled app would
run with private assemblies in the local app directory.

Any hint appreciated. TIA very much!
Joerg
Dec 27 '06 #1
2 4007
"Joerg Toellner" <to******@oss-gmbh.dewrote
This week i installed the SP1 final for MSVC2005. And after that i cannot
deploy any program compiled with that SP1-updated compiler with private
assemblies anymore.

The app runs well on pc's which have MSVC installed. But on "clean" pcs
the app won't start and display an "component is missing. Re-install the
application" error dialog.
[..]
I checked the versioning of the CRT DLL and the versionnumbers in the
manifests (the CRT Manifest and the app embedded manifest), but can't
figure out whats going wrong there. Of course i use the new installed SP1
CRT-DLL with version number 8.0.50727.762. And this number is also in the
manifests.

Linking statically the CRT is not an option as i have to use third party
libs as well, that are build in /MD compiler mode and cant be rebuild in
/MT. And mixing up /MD and /MT compiles end up in a error hell (undefined
externals). The app, compiled with the pre SP1 version of MSVC uses this
libs also, and this libs havent changed in between. So the error hasn't
anything to do with this libs.
What's in the manifests of these third-party DLLs? I guess they still bind
against
the RTM DLLs. I guess, there shouldn't be any binary incompatibilities
between
the RTM and SP1 DLLs, so it should just work with the new DLLs. To
redirect the binding to the new SP1 DLLs you would typically use a
configuration file. I take it, VC8 SP1 installs a publisher configuration (I
haven't
taken a look at SP1 one yet).

I have never needed to do anything like that but I believe you would
probably
need an application configuration and redirect to the SP1 one version. I am
not sure, however, whether that works from the EXE or whether you have
to make the third-party DLL a private assembly (by providing an external
assembly manifest) and redirect the DLL binding there.

From the docs I read a while ago, I'd say the latter is the way to go - but
then
the documentation certainly isn't exactly exhaustive.

-hg
Dec 29 '06 #2
Hi Group,

To keep you up-to-date and for later searching when others have a similar
problem.

Holger was right....recompiling all the third party libs and dlls solved the
problem. After that i can ship the CRT and the manifest with my app in the
appdir again and the app runs without any prerequisites on the target
machine.

Thanks to all for reading and Holger for solving my problem.

CU all
Joerg

"Holger Grund" <ho**********@remove.ix-n.netschrieb im Newsbeitrag
news:ur**************@TK2MSFTNGP06.phx.gbl...
"Joerg Toellner" <to******@oss-gmbh.dewrote
>This week i installed the SP1 final for MSVC2005. And after that i cannot
deploy any program compiled with that SP1-updated compiler with private
assemblies anymore.

The app runs well on pc's which have MSVC installed. But on "clean" pcs
the app won't start and display an "component is missing. Re-install the
application" error dialog.
[..]
>I checked the versioning of the CRT DLL and the versionnumbers in the
manifests (the CRT Manifest and the app embedded manifest), but can't
figure out whats going wrong there. Of course i use the new installed SP1
CRT-DLL with version number 8.0.50727.762. And this number is also in the
manifests.

Linking statically the CRT is not an option as i have to use third party
libs as well, that are build in /MD compiler mode and cant be rebuild in
/MT. And mixing up /MD and /MT compiles end up in a error hell (undefined
externals). The app, compiled with the pre SP1 version of MSVC uses this
libs also, and this libs havent changed in between. So the error hasn't
anything to do with this libs.
What's in the manifests of these third-party DLLs? I guess they still bind
against
the RTM DLLs. I guess, there shouldn't be any binary incompatibilities
between
the RTM and SP1 DLLs, so it should just work with the new DLLs. To
redirect the binding to the new SP1 DLLs you would typically use a
configuration file. I take it, VC8 SP1 installs a publisher configuration
(I haven't
taken a look at SP1 one yet).

I have never needed to do anything like that but I believe you would
probably
need an application configuration and redirect to the SP1 one version. I
am
not sure, however, whether that works from the EXE or whether you have
to make the third-party DLL a private assembly (by providing an external
assembly manifest) and redirect the DLL binding there.

From the docs I read a while ago, I'd say the latter is the way to go -
but then
the documentation certainly isn't exactly exhaustive.

-hg

Jan 2 '07 #3

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

1
by: Zeplynne | last post by:
There are several ways to deploy an assembly into the global assembly cache: 1) Use an installer designed to work with the global assembly cache. This is the preferred option for installing...
1
by: Bob Rock | last post by:
Hello, in the last few days I've made my first few attempts at creating mixed C++ managed-unmanaged assemblies and looking aftwerwards with ILDASM at what is visible in those assemblies from a...
2
by: mqsash | last post by:
Hi Problem : Unable to deploy an assembly in IE, as a cab file. (Works fine when deployed as a dll ) Description : I have created a assembly (.dll) in C# which I deploy in IE. The dll name is...
2
by: indiana | last post by:
Thanks in advance. I have a vc6 dll that is currently called by a vc6 exe and want to call it from a vc2005 dll. The vc6 exe using the following header extern "C" __declspec(dllimport) int...
2
by: bjhogan | last post by:
Hi, I have built an c# asp.net application on my laptop, it uses the Enterprise Library blocks - Data Access Application Block, Configuration Application Block. I now want to deploy my...
5
by: WT | last post by:
WTCRM.Settings.DBDataStore is a class in a main site deployed including everything in the same assmebly Address_Manager project is an external module that uses WTCRM as a reference....
5
by: RossettoeCioccolato | last post by:
I don't suppose that the redistributable C/C++ runtime library merge module has been packaged into an MSI script and is available for download somewhere? They are bloating up my distribution files...
2
by: Sky | last post by:
Hello: I'm trying to make sense of snk files, when to use, under what conditions to regenerate new ones,...can someone take a look if these statemes make sense? And then the final questions at the...
6
by: AGP | last post by:
I resisted for many years but I've just written my first app in .NET2005 and am looking to deploy my app with a third-party installer. ClickOnce and the VS Installer do not meed my needs and I am...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
0
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.