Solved

ClickOnce deployment doesn't handle registration COM User Control

Posted on 2009-05-13
4
411 Views
Last Modified: 2013-11-26
I have a VS2008 solution building a Outlook 2007 add-in. This add-in will create a new folder in Outlook with a asp page as home page. On this ASP a scriptis run, referencing a custom control loading data from SQLExpress.

When published on the development machine the Custom Control is registered and the Add-in works fine.
When deployment is run on target machine, the add-in installs but the script returns an error saying the Custom Control method called doesn't exists.

Attached code is from the User Control TimelogContact showing the Initialize code that is not accessible from page

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head><title></title></head>
<body onload='OnBodyLoad()'>
      <script> function OnBodyLoad()
              {
                  var oApp = window.external.OutlookApplication;
                  TimelogContacts.Initialize(oApp);
              }
      </script>
    <object classid='clsid:6D5EC5A0-3F04-11DE-A97D-F85755D89593' id='TimelogContacts' height='100%'/>
</body>
</html>
using System;

using System.Data;

using System.Data.SqlClient;

using System.Windows.Forms;

using System.IO;

using System.Reflection;

using System.Runtime.InteropServices;

using MSOutlook = Microsoft.Office.Interop.Outlook;

using Word = Microsoft.Office.Interop.Word;

using Excel = Microsoft.Office.Interop.Excel;
 

namespace TimelogAddIn

{

    [ComVisible(true)]

    [Guid("6D5EC5A0-3F04-11DE-A97D-F85755D89593")]

    public partial class TimelogContacts : UserControl

    {

        public event LoginAttemptEventHandler LoginAttempt;

        public delegate void LoginAttemptEventHandler(bool success, string siteCode, string apiInitials, string apiPassword);

        private TimelogAddIn.APILoginCredentials loginCredentials;

        private System.Globalization.CultureInfo _oldCI;

        public Word.Application _wordApp; 

        private Excel.Application _excelApp;

        private string _dir = "";

        private string _proj = "";

        // private string _cust = "";

        private object _oMissing = System.Reflection.Missing.Value;
 

        MSOutlook.Application _app = null;
 

        [ComVisible(true)]

        public void Initialize(MSOutlook.Application o)

        {

            _app = (MSOutlook.Application)o;

        }

Open in new window

0
Comment
Question by:MJellema
  • 2
  • 2
4 Comments
 
LVL 83

Expert Comment

by:CodeCruiser
Comment Utility
0
 

Author Comment

by:MJellema
Comment Utility
Dear CodeCruiser,

Thank you for posting these links but I cannot see any solutions in them for my problem. Main reasons are all articles talk about Visual Studio 2005 (SE) and non address the clickOnce way to setup a COM add-in.

Any other parts on the web to look for an answer?
0
 
LVL 83

Expert Comment

by:CodeCruiser
Comment Utility
0
 

Accepted Solution

by:
MJellema earned 0 total points
Comment Utility
Thank you CodeWarrior for your suggestions but non helped me out. I rewrote the code to make sure the class interface and all was in the main module of the code.
Now the ClickOnce works and no longer needs to register things it seems is not capable off.
Question is closed.
0

Featured Post

Find Ransomware Secrets With All-Source Analysis

Ransomware has become a major concern for organizations; its prevalence has grown due to past successes achieved by threat actors. While each ransomware variant is different, we’ve seen some common tactics and trends used among the authors of the malware.

Join & Write a Comment

A basic question.. “What is the Garbage Collector?” The usual answer given back: “Garbage collector is a background thread run by the CLR for freeing up the memory space used by the objects which are no longer used by the program.” I wondered …
It seems a simple enough task, yet I see repeated questions asking how to do it: how to pass data between two forms. In this article, I will show you the different mechanisms available for you to do just that. This article is directed towards the .N…
Here's a very brief overview of the methods PRTG Network Monitor (https://www.paessler.com/prtg) offers for monitoring bandwidth, to help you decide which methods you´d like to investigate in more detail.  The methods are covered in more detail in o…
When you create an app prototype with Adobe XD, you can insert system screens -- sharing or Control Center, for example -- with just a few clicks. This video shows you how. You can take the full course on Experts Exchange at http://bit.ly/XDcourse.

762 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

6 Experts available now in Live!

Get 1:1 Help Now