Install com from .msi or...

M

Mercdev

Hi,

We have a .NET assembly with COM controls inside. We need to register this
control in Internet Explorer. We have a html page to use this control:
<html>
<body>
<OBJECT id="control1"
classid="CLSID:B5131ECD-CCEB-4f2f-9632-E28E085A1C68"
codebase="setup.msi">
</OBJECT>
</body>
</html>

If we had not managed COM control then we would use CAB file and .ini file
to register all components inside CAB.
We'd read that with managed asembleys we should use .msi installer file
instead of CAB. We'd created this msi. And if we installing it manualy(by
double clicking on it) then we can use this controls. But if msi runed by
iexplorer when page is opened, then COM controls are not registerd.

Question: What should we do to automatically register COM controls(writen on
..NET) when HTML page is opening?
 
L

Luke Zhang [MSFT]

Hello,

You may first take a look at this article:

How To Install ActiveX Controls in Internet Explorer Using the Active
Directory
http://support.microsoft.com/default.aspx/kb/280579

It lists the exact steps to install an ActiveX control with MSI code base.
You may first try this step to see if it will work.

Sincerely,

Luke Zhang

Microsoft Online Community Support
==================================================
Get notification to my posts through email? Please refer to
http://msdn.microsoft.com/subscriptions/managednewsgroups/default.aspx#notif
ications.

Note: The MSDN Managed Newsgroup support offering is for non-urgent issues
where an initial response from the community or a Microsoft Support
Engineer within 1 business day is acceptable. Please note that each follow
up response may take approximately 2 business days as the support
professional working with you may need further investigation to reach the
most efficient resolution. The offering is not appropriate for situations
that require urgent, real-time or phone-based interactions or complex
project analysis and dump analysis issues. Issues of this nature are best
handled working with a dedicated Microsoft Support Engineer by contacting
Microsoft Customer Support Services (CSS) at
http://msdn.microsoft.com/subscriptions/support/default.aspx.
==================================================

This posting is provided "AS IS" with no warranties, and confers no rights.
 
M

Mercdev

Hello,

I've read this article before. It didn't help. When I ran msi manualy (not
from explorer) it is working, but when i ran it from iexplorer( as code
base) it is not registering COM objects.
 
L

Luke Zhang [MSFT]

Hello,

Does the client have MS Installer installed? With MSI codebased, MS
Installer is required on the clients. Also, in order to make the control
visible under Internet Options -> Temporary Internet Files -> Settings ->
View objects, there are certain registry keys that need to be populated:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Code Store Database\Distribution
Units]

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Code Store Database\Distribution
Units\{C4DD002B-53B1-11D2-AA17-00104B0753B3}]
"SystemComponent"=dword:00000000
"Installer"="MSICD"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Code Store Database\Distribution
Units\{C4DD002B-53B1-11D2-AA17-00104B0753B3}\Contains]

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Code Store Database\Distribution
Units\{C4DD002B-53B1-11D2-AA17-00104B0753B3}\Contains\Files]
"C:\\WINDOWS\\Downloaded Program Files\\AsynchGrid.ocx"=""

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Code Store Database\Distribution
Units\{C4DD002B-53B1-11D2-AA17-00104B0753B3}\DownloadInformation]
"CODEBASE"="setup.msi"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Code Store Database\Distribution
Units\{C4DD002B-53B1-11D2-AA17-00104B0753B3}\InstalledVersion]
@="9,6,0,133"

Note that in the above keys GUID {C4DD002B-53B1-11D2-AA17-00104B0753B3} is
for control and this needs to be replaced by the GUID of the control that
needs to be deployed

Sincerely,

Luke Zhang

Microsoft Online Community Support
==================================================
Get notification to my posts through email? Please refer to
http://msdn.microsoft.com/subscriptions/managednewsgroups/default.aspx#notif
ications.

Note: The MSDN Managed Newsgroup support offering is for non-urgent issues
where an initial response from the community or a Microsoft Support
Engineer within 1 business day is acceptable. Please note that each follow
up response may take approximately 2 business days as the support
professional working with you may need further investigation to reach the
most efficient resolution. The offering is not appropriate for situations
that require urgent, real-time or phone-based interactions or complex
project analysis and dump analysis issues. Issues of this nature are best
handled working with a dedicated Microsoft Support Engineer by contacting
Microsoft Customer Support Services (CSS) at
http://msdn.microsoft.com/subscriptions/support/default.aspx.
==================================================

This posting is provided "AS IS" with no warranties, and confers no rights.
 
M

Mercdev

Hello,

Yes, MS Installer has installed, register has all keys you listed and it is
not working.
But I have some differences with key:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Code Store Database\Distribution
Units\{C4DD002B-53B1-11D2-AA17-00104B0753B3}\Contains\Files]
"C:\\WINDOWS\\Downloaded Program Files\\AsynchGrid.ocx"=""

on my side it looks like:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Code Store Database\Distribution
Units\{83D65796-DE77-4a09-A63F-FB9B1B51E2C3}\Contains\Files]
"C:\WINDOWS\Downloaded Program Files\websetup.msi"=""

I suppose that if there will be myconrol.dll instead of websetup.msi it
would be work.

From your example I saw that you used unmanged ActiveX control -
AsynchGrid.ocx, but I need to install managed assembley.


Luke Zhang said:
Hello,

Does the client have MS Installer installed? With MSI codebased, MS
Installer is required on the clients. Also, in order to make the control
visible under Internet Options -> Temporary Internet Files -> Settings ->
View objects, there are certain registry keys that need to be populated:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Code Store Database\Distribution
Units]

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Code Store Database\Distribution
Units\{C4DD002B-53B1-11D2-AA17-00104B0753B3}]
"SystemComponent"=dword:00000000
"Installer"="MSICD"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Code Store Database\Distribution
Units\{C4DD002B-53B1-11D2-AA17-00104B0753B3}\Contains]

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Code Store Database\Distribution
Units\{C4DD002B-53B1-11D2-AA17-00104B0753B3}\Contains\Files]
"C:\\WINDOWS\\Downloaded Program Files\\AsynchGrid.ocx"=""

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Code Store Database\Distribution
Units\{C4DD002B-53B1-11D2-AA17-00104B0753B3}\DownloadInformation]
"CODEBASE"="setup.msi"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Code Store Database\Distribution
Units\{C4DD002B-53B1-11D2-AA17-00104B0753B3}\InstalledVersion]
@="9,6,0,133"

Note that in the above keys GUID {C4DD002B-53B1-11D2-AA17-00104B0753B3} is
for control and this needs to be replaced by the GUID of the control that
needs to be deployed

Sincerely,

Luke Zhang

Microsoft Online Community Support
==================================================
Get notification to my posts through email? Please refer to
http://msdn.microsoft.com/subscriptions/managednewsgroups/default.aspx#notif
ications.

Note: The MSDN Managed Newsgroup support offering is for non-urgent issues
where an initial response from the community or a Microsoft Support
Engineer within 1 business day is acceptable. Please note that each follow
up response may take approximately 2 business days as the support
professional working with you may need further investigation to reach the
most efficient resolution. The offering is not appropriate for situations
that require urgent, real-time or phone-based interactions or complex
project analysis and dump analysis issues. Issues of this nature are best
handled working with a dedicated Microsoft Support Engineer by contacting
Microsoft Customer Support Services (CSS) at
http://msdn.microsoft.com/subscriptions/support/default.aspx.
==================================================

This posting is provided "AS IS" with no warranties, and confers no
rights.
 
L

Luke Zhang [MSFT]

Hello,

Would you please let me know how the COM control locates in your .NET
assembly? I may try it on my side to see if I can make it work. And, did
you test this with a local administrator account on the client and the
server is in the "trusted sites"?

Sincerely,

Luke Zhang

Microsoft Online Community Support
==================================================
Get notification to my posts through email? Please refer to
http://msdn.microsoft.com/subscriptions/managednewsgroups/default.aspx#notif
ications.

Note: The MSDN Managed Newsgroup support offering is for non-urgent issues
where an initial response from the community or a Microsoft Support
Engineer within 1 business day is acceptable. Please note that each follow
up response may take approximately 2 business days as the support
professional working with you may need further investigation to reach the
most efficient resolution. The offering is not appropriate for situations
that require urgent, real-time or phone-based interactions or complex
project analysis and dump analysis issues. Issues of this nature are best
handled working with a dedicated Microsoft Support Engineer by contacting
Microsoft Customer Support Services (CSS) at
http://msdn.microsoft.com/subscriptions/support/default.aspx.
==================================================

This posting is provided "AS IS" with no warranties, and confers no rights.
 
M

Mercdev

Hello,

I've created custom UserControl with VS wizard and add Guid attribute, thus
code looks like:

[Guid("AA0A5084-5DB5-4e35-B4BF-9EC4CA3EB1B3")]
public class MyUserControl : UserControl
{
....
}

This control is working in IExplorer when I manifestly register it (with
regasm.exe or if I manualy write to registry to HKEY_CLASSES_ROOT). Also
I've created MSI installer file which installs this control. After I ran
this msi I can use control in IExplorer. But when this msi is launched from
IExplorer as codebase of object tag control is not installing. I've tested
this under administrative accounts and is in the "trusted sited".
 
L

Luke Zhang [MSFT]

Hello,

From the code, it is actual an winform control. For such a control, we can
embed it in HTML/ASPX page directly, not necessary to convert it to an
ActiveX control first. And, if we use the Winform control directly, no
codebase is needed, IE will download the assembly automatically. Here are
an article on this:

http://www.codeproject.com/cs/miscctrl/htmlwincontrol.asp

and a wecast:

http://www.only4gurus.com/v3/preview.asp?resource=7521

Hope this help,

Sincerely,

Luke Zhang

Microsoft Online Community Support
==================================================
Get notification to my posts through email? Please refer to
http://msdn.microsoft.com/subscriptions/managednewsgroups/default.aspx#notif
ications.

Note: The MSDN Managed Newsgroup support offering is for non-urgent issues
where an initial response from the community or a Microsoft Support
Engineer within 1 business day is acceptable. Please note that each follow
up response may take approximately 2 business days as the support
professional working with you may need further investigation to reach the
most efficient resolution. The offering is not appropriate for situations
that require urgent, real-time or phone-based interactions or complex
project analysis and dump analysis issues. Issues of this nature are best
handled working with a dedicated Microsoft Support Engineer by contacting
Microsoft Customer Support Services (CSS) at
http://msdn.microsoft.com/subscriptions/support/default.aspx.
==================================================

This posting is provided "AS IS" with no warranties, and confers no rights.
 
M

Mercdev

Hello,

Yes I know that I can directly use winform controls in IE, I've read this
articles before.
But problem with this approach is that it is neccessary to configure
security permissions for all used assemblies (and as I know all
configurations should be implemented manually on every machine).
And because this controls used only in intranet we want to reduce deployment
costs(that is why we want to keep ActiveX) .
 
L

Luke Zhang [MSFT]

Hello,

Even we have export such a .NET assembly as a COM control, we still need to
configure for the code access security, it is actually still an .NET
application. All .NET code with be controled by CAS. If you have concern
about security permissions, I suggest you may take a look at Code Access
Security Policy Tool (Caspol.exe) :

http://msdn2.microsoft.com/en-us/library/cb6t8dtz(VS.80).aspx

You can use this tool to set security permission on every client, for
example, create a full trusted code group for your server's url, so all
code from your server will be full trusted.

Sincerely,

Luke Zhang

Microsoft Online Community Support
==================================================
Get notification to my posts through email? Please refer to
http://msdn.microsoft.com/subscriptions/managednewsgroups/default.aspx#notif
ications.

Note: The MSDN Managed Newsgroup support offering is for non-urgent issues
where an initial response from the community or a Microsoft Support
Engineer within 1 business day is acceptable. Please note that each follow
up response may take approximately 2 business days as the support
professional working with you may need further investigation to reach the
most efficient resolution. The offering is not appropriate for situations
that require urgent, real-time or phone-based interactions or complex
project analysis and dump analysis issues. Issues of this nature are best
handled working with a dedicated Microsoft Support Engineer by contacting
Microsoft Customer Support Services (CSS) at
http://msdn.microsoft.com/subscriptions/support/default.aspx.
==================================================

This posting is provided "AS IS" with no warranties, and confers no rights.
 
A

Alexander Malapheev[MCP]

Hello,

Thank you for your response.
Any way we've decided to create installer and use MS Updater Block for
our application instead downloading and installing ActiveX from "codebase".
 
L

Luke Zhang [MSFT]

Hello,

Thank you for update. In .NET 2.0 Updater application block has been
upgrade as ClickOnce. You may check these article for ClickOnce:

Deploy and Update Your Smart Client Projects Using a Central Server
http://msdn.microsoft.com/msdnmag/issues/04/05/ClickOnce/

ClickOnce Deployment
http://msdn2.microsoft.com/en-us/library/t71a733d(VS.80).aspx

If there is any further question for Updater application block or
ClickOnce, please feel free to let us know.

Sincerely,

Luke Zhang

Microsoft Online Community Support
==================================================
Get notification to my posts through email? Please refer to
http://msdn.microsoft.com/subscriptions/managednewsgroups/default.aspx#notif
ications.

Note: The MSDN Managed Newsgroup support offering is for non-urgent issues
where an initial response from the community or a Microsoft Support
Engineer within 1 business day is acceptable. Please note that each follow
up response may take approximately 2 business days as the support
professional working with you may need further investigation to reach the
most efficient resolution. The offering is not appropriate for situations
that require urgent, real-time or phone-based interactions or complex
project analysis and dump analysis issues. Issues of this nature are best
handled working with a dedicated Microsoft Support Engineer by contacting
Microsoft Customer Support Services (CSS) at
http://msdn.microsoft.com/subscriptions/support/default.aspx.
==================================================

This posting is provided "AS IS" with no warranties, and confers no rights.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top