How to use registrati​on-free COM with TestStand

We create several different test programs run by TestStand. The sequence typically calls a function in a .NET dll that in turn calls functions in COM objects. We would like to use registration free COM to isolate the programs from each other but I'm having difficulty making it work. I know that in principle the manifest file and COM objects could be put in the same directory as SeqEdit.exe but this is unacceptable. I was thinking that using the activation context might be a way to do it. For example in C#: ActivationContext.CreatePartialActivationContext(ApplicationIdentit​y, string[]). ApplicationIdentity is the application identity of SeqEdit and the string [] parameter contains paths and names of manifest files that describe the needed COM objects. The idea would be to load an activation context with the .NET dll called by the sequence so SeqEdit could find the COM dlls in the same directory as the sequence. I haven't gotten it to work yet. Any ideas?

Russell1,
I'm going to try to give as thorough description as I can, since many other users may not understand what you're asking about.
Normally, a COM server (ActiveX servers are COM servers) is registered with Windows via the registry.  Unfortunately, you can only have one version of the server registered at a time.  This is one of the reasons why TestStand (which is a COM server) needs a version switcher to change between engine versions.
There is a technology called "Registration-free COM" that allows an application to use a COM server without having it registered in the windows registry.  It involves creating manifest files for the COM server and for the application that is calling the com server.  These manifest files are used by the operating system when the application tries to call the COM server to find the server.  Usually the OS would go to the registry, but it will check the manifest files first.
The best reference on registration-free COM is an article on MSDN: Registration-Free Activation of COM Components: A Walkthrough.
A year or so ago, there was a TestStand customer who was interested in forcing some of their applications to use a certain version of a COM server; I was able to get this working for them. 
I tested the .NET and MFC TestStand user interfaces, and found that I could get registration-free COM working with both.  I found that two .manifest files needed to be created.
The first is a .manifest file for the COM server.  This was a straightforward process following exactly the instructions in the above walkthrough (Step 7).
The second is a .manifest file for the UI.  Since the TestStand UIs have their manifest files embedded in the application, I had to modify the .manifest file before building the UI, or use the .NET SDK tool mt.exe.
After creating both manifest files, I found that adding them was enough to make .NET calls to the COM server work correctly if the application and server were in the same directory. 
Unfortunately, I did not do any testing with having the COM server in a different directory.
Now, on to your question:
I just did some poking around on MSDN, and I have found the following information.
Note that after you have configured a .manifest file for your COM server, it is then referred to as an "assembly".  I am making an assumption here (but I think it's a reasonable assumption) that after this, the COM server can be used just like any other assembly.  Specifically, it will be searched for in the same way an assembly is searched for.
MSDN documents How the Runtime Locates Assemblies.  Note near the bottom of that page, if the assembly has not been bound to before, and it is not in the Global Assembly Cache (GAC), it will probe for the assembly.  From this I think the following are possible solutions.  Please note that I haven't tested any of them.
MSDN documents the Probing behavior.  Note that it will only probe in sub-folders of the current application root directory ([application base]).  Note that there is also some information at the bottom of the page about COM interop scenarios.  I think what it is saying is that if you already are in an assembly, and call a COM server, it will look in the same folder as that assembly for the COM server.  This might be a possible solution for you.
There is also an AssemblyResolve event that is fired if the CLR is unable to locate the assembly.  I don't know if this event is fired in the case that the COM server cannot be found, but if it is, you could then define your own way to search for the server.  I found this information in a blog post by Microsoft developer: https://blogs.msdn.com/junfeng/archive/2006/03/27/​561775.aspx
One last possibility is to use an Application Configuration file; which is similar to a manifest file.  According to that page, there is an element called 'probing' that you can use with Windows 7 or Windows Server 2008 R2 when defining assembly binding to specify relative paths to probe for the assembly.
I honestly don't know if any of these possibilities will work.  Please let me know if you get it working or if you need some more help, and I'll do my best to assist you.
Message Edited by Josh W. on 02-04-2010 03:23 PM
Josh W.
Certified TestStand Architect
Formerly blue

Similar Messages

  • How to use the eventing and databag with a WAS 6.20 ?

    How to use the eventing and databag with a WAS 6.20 ?
    Is what there is a good guide for these services?
    Thank's

    In the raise event you can pass the value
    like below.
    <SCRIPT>
    function raiseEvt(value1){
    if(window.document.domain == window.location.hostname){
    if ( document.domain.indexOf(".") > 0 ) document.domain = document.domain.substr(document.domain.indexOf(".")+1);
       EPCMPROXY.raiseEvent( "urn:com.sap:BWEvents","BWiViewevent", value1, null );
      // alert('tree domain'+document.domain);
    </SCRIPT>
    and in the
    subscribe event you can get the values like below.
    <script language="javascript">
    if(window.document.domain == window.location.hostname){
    document.domain = document.domain.substring(document.domain.indexOf('.')+1);
        EPCMPROXY.subscribeEvent("urn:com.sap:BWEvents","BWiViewevent", window, "myreceiveEvent");
    function myreceiveEvent( eventObj ) {
          document.forms[0].gp_hidden.value = eventObj.dataObject;
    </script>
    Also look at the following link for a complete documentation.
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/documents/a1-8-4/Enterprise%20Portal%20Client.pdf
    Regards
    Raja

  • How to use Time Capsule via INTERNET WITH WINDOWS 7 SMB Cloud

    how to use Time Capsule via INTERNET WITH WINDOWS 7 SMB Cloud

    Get a vpn router.. I have no idea where you are in the world but you can find reasonable stuff for not too much money or even a general router that takes third party firmware like dd-wrt can run openvpn. 
    Set up the vpn router in place of the TC, as the main router in the network. Simply bridge the TC and place it behind the router. It will be accessible as part of the network via the vpn.
    This is the only safe way to do it via windows.
    http://www.dyncommunity.com/questions/18132/accessing-time-capsule-from-windows- 7-over-the-int.html
    If you google around I have seen posts about how to access TC by port forwarding SMB on the TC.. using a different port.. To me this is going to slow down the hackers by a day or two.. then they will discover the open port and access your network.. not just the TC.. they now have SMB access to everything. Don't do it. There is very little security on SMB.

  • How to use the same OC4j server with different port number

    How to use the same OC4j server with different port numbers..?
    I have to OC4J installed on my machine on different hard disk drives....
    I want to be able to run both the server simultaneously..?
    is it possible ..it yes then how..?
    for that i have changed the port number of one server...
    but when i am trying to start the other server with different port number..it says that JVM -Bind already...
    Is there any clues...?
    Nilesh G

    In the config directory:
    default-web-site.xml: Change the port the HTTP listener listens on
    jms.xml: Change the port the JMS service listens on
    rmi.xml: Change the port the ORMI listener listens on.
    Or, you can add another web-site.xml file, and deploy your applications to 1 server, and bind the web applications to the different web sites. This way you only have to deploy your applications to 1 place.
    Rob
    Oracle

  • How to use "Notes" on my iPad with my existing iCloud address?

    How to use "Notes" on my iPad with my existing iCloud address? It asks me to create a new one...

    Did I overlook some critical info here? I'm having the same problem described by Henry5, but I'm signed in to iCloud with my AppleID which is not the same as my Mobile Me/iCloud email. I keep being asked to create an account (which it won't allow me to do since the account already exists) but no where do I see an option to use the existing account. I also tried logging out with my AppleID account, and using the iCloud email, but that doesn't work.
    I just want to sync my notes and mail... this is really irritating!

  • How to use FM SO_DOCUMENT_REPOSITORY_MANAGER send mail with CC.

    Dear Experts:
    Please help me. How to use FM SO_DOCUMENT_REPOSITORY_MANAGER send mail with CC.
    My Program code is as follow:
    *Send the mail.
    tb_receipients-recnam = 'BAITZ'.
    tb_receipients-recesc = 'B'.
    tb_receipients-sndex = 'X'.
    tb_receipients-att_fix ='X' .
    APPEND  tb_receipients.
    CALL FUNCTION 'SO_DOCUMENT_REPOSITORY_MANAGER'
      EXPORTING
        method       = wa_method1
        office_user  = wa_owner
        ref_document = wa_ref_document
        new_parent   = wa_new_parent
      IMPORTING
        authority    = wa_authority
      TABLES
        objcont      = tb_objcnt
        objhead      = tb_objhead
        objpara      = tb_objpara
        objparb      = tb_objparb
        recipients   = tb_receipients
        attachments  = tb_attachments
        references   = tb_references
        files        = tb_files
      CHANGING
        document     = wa_document
        header_data  = wa_header.
    endform.                    " send_mail
    By the why, tb_receipients-recnam = 'BAITZ'. What's the meaning of 'BAITZ'? Thanks!

    you can use FM SO_NEW_DOCUMENT_SEND_API1
    WA_RECV TYPE SOMLRECI1,
    IT_RECV TYPE STANDARD TABLE OF SOMLRECI1.
    wa_recv-receiver = 'TO email address'.
    wa_recv-rec_type = 'U'.
    wa_recv-com_type = 'INT'.
    APPEND wa_recv TO it_recv.
    CLEAR wa_recv."To Recipient
    wa_recv-receiver = 'CC email address'.
    wa_recv-rec_type = 'U'.
    wa_recv-com_type = 'INT'.
    wa_recv-copy = 'X'.
    APPEND wa_recv TO it_recv.
    CLEAR wa_recv. "CC Recipient
    wa_recv-receiver = 'BCC email address'.
    wa_recv-rec_type = 'U'.
    wa_recv-com_type = 'INT'.
    wa_recv-blind_copy = 'X'.
    APPEND wa_recv TO it_recv.
    CLEAR wa_recv. "BCC Recipient

  • How to use warn about changes property with page menus

    how to use warn about changes property with page menus

    Hi,
    If u will enable this property, then u will get warning message as a popup in case of change of state of VO.
    Regards,,
    Gyan

  • ANyone know how to use an Apple keyboard A1359 with a MacBook Air?

    Does anyone know how to use an Apple Keyboard A1359 with a MacBook Air?

    I'm going to ask the hosts to move this to the macbook forum since you're more likely to get answers there than in the iPad one.

  • HT2534 How can I download a free app with an existing Apple ID without to give my credit card infos?! The ID ist already made...

    How can I download a free app with an existing Apple ID without to give my credit card infos?! The ID ist already made...

    Sorry, but you can't. The process only works when creating a new Apple ID. With an existing ID you'll have to provide a payment method at least temporarily.
    Regards.

  • HT4623 How to use epson iprint after connected with iPad help

    How to use epson iprint after connected with iPad help.

    When you open Epson iPrint, you will see the various options of ways to proceed, e.g., Photos (to print photos), Maintenance (for printer maintenance). Scan (to perform scanning).

  • How many seats does after effects come with on the $20/month plan? anyone?

    How many seats does after effects come with on the $20/month plan?

    Just wanted to add that seats can be added in Creative Cloud for Team.
    Creative Cloud Help | Creative Cloud for teams
    License management and budget benefits | Creative Cloud for teams
    Regards
    Rajshree

  • Does anyone kwow how to use the Korg M50 editor with garageband?

    does anyone kwow how to use the Korg M50 editor with garageband?

    Moved from the Creative Cloud to the Photoshop forum. They will be able to help you here.

  • How many discs does the imac come with?

    How many discs should the imac come with when first bought and what are they?

    Lovely collection of tags there. How does the question relate to iPhoto?
    Regards
    TD

  • How to use SOA Suite in conjunction with SOA Analysis and Design Tools

    Hi everybody,
    I am a novice in this field and I need some help regarding integrating analysis and design tools with SOA Suite.
    We used to analyze and design with Oracle Designer and use its powerful form generator to develop a system. It almost covered all the software lifecycle and kept the traceability between anlaysis,design and implementation.
    I have studied about the SOA concepts and read some papaer about SOA Suite. I have also installed the SOA demo based on SOA Suite and I found it absolutely amazing, but my problem is that It seems oracle does not have any tools for SOA Analysis and Design. am I right? if so, How can we analyze and design a system based on SOA concepts and implement it using soa suite in such a way that keeps traceability? What tools is used for this purpose?
    It seems that IBM have some tools like Rational Software Architect and Rational Suite which enable people to design and analyze based on SOA concepts and then generates some pieces of code (like oracle designer in old days) but is it possible to design in these tools and then generating codes for SOA Suite ? (for example generating a bpel file from a design model)
    As I told before I am a novice in this field and I would be so grateful if other users can share their expriences regarding this matter.
    Any help would be highly appreciated.
    Thanks in advance,
    Navid

    Learn About All Things SOA:: SOA India 2007:: IISc, Bangalore (Nov 21-23)
    Aligning IT systems to business needs and improving service levels within the constraints of tight budgets has for long been the topmost challenge for CIOs and IT decision makers. Service-oriented Architecture (SOA) provides a proven strategy to clearly address both of these objectives. Creating more agile information systems and making better use of existing infrastructure are two leading factors that are boosting SOA adoption across large, medium, and small Indian industries from the BFSI, Retail, Telecom, Manufacturing, Pharma, Energy, Government and Services verticals in India. If you are an IT decision maker belonging to any of these verticals, SOA India 2007 (IISc, Bangalore, Nov 21-23 2007) presents a unique opportunity to gather cutting-edge business and technical insights on SOA and other related areas such as BPM, BPEL, Enterprise 2.0, SaaS, MDM, Open Source, and more.
    At SOA India 2007, acclaimed SOA analysts, visionaries, and industry speakers from across the world will show you how to keep pace with change and elevate your IT infrastructure to meet competition and scale effectively. The organisers are giving away 100 FREE tickets worth INR 5000 each to the first 100 qualified delegates belonging to the CxO/IT Decision Maker/Senior IT Management profile, so hurry to grab this opportunity to learn about all things SOA. You can send your complete details, including your designation, e-mail ID, and postal address directly to Anirban Karmakar at [email protected] to enrol in this promotion that is open until 12 October 2007.
    SOA India 2007 will also feature two half-day workshops on SOA Governance (by Keith Harrison-Broninski) and SOA Architecture Deep Dive (by Jason Bloomberg). If you are an IT manager, software architect, project leader, network & infrastructure specialist, or a software developer, looking for the latest information, trends, best practices, products and solutions available for building and deploying successful SOA implementations, SOA India 2007’s technical track offers you immense opportunities.
    Speakers at SOA India include:
    •     Jason Bloomberg, Senior Analyst & Managing Partner, ZapThink LLC
    •     Keith Harrison-Broninski, Independent consultant, writer, researcher, HumanEdJ
    •     John Crupi, CTO, JackBe Corporation
    •     Sandy Kemsley, Independent BPM Analyst, column2.com
    •     Prasanna Krishna, SOA Lab Director, THBS
    •     Miko Matsumara, VP & Deputy CTO, SoftwareAG
    •     Atul Patel, Head MDM Business, SAP Asia Pacifc & Japan
    •     Anil Sharma, Staff Engineer, BEA Systems
    •     Coach Wei, Chairman & CTO, Nexaweb
    •     Chaitanya Sharma, Director EDM, Fair Isaac Corporation
    A partial list of the sessions at SOA India 2007 include:
    •     EAI to SOA: Radical Change or Logical Evolution?
    •     BPEL: Strengths, Limitations & Future!
    •     MDM: Jumpstart Your SOA Journey
    •     Governance, Quality, and Management: The Three Pillars of SOA Implementations
    •     Building the Business Case for SOA
    •     Avoiding SOA Pitfalls
    •     SOA Governance and Human Interaction Management
    •     Business Intelligence, BPM, and SOA Handshake
    •     Enterprise 2.0: Social Impact of Web 2.0 Inside Organizations
    •     Web 2.0 and SOA – Friends or Foe?
    •     Achieving Decision Yield across the SOA-based Enterprise
    •     Governance from day one
    •     Demystifying Enterprise Mashups
    •     Perfecting the Approach to Enterprise SOA
    •     How to Build Cost Effective SOA. “Made in India” Really Works!
    For more information, log on to http://www.soaindia2007.com/.

  • How to use new aluminum apple remote with an imac

    How does it work?  Menu button doesn't seem to do anything.  I paired it io and got the linking chain icon.  The volume up down works, and sometimes the left right buttons move itunes to the next selection, but that's it.  I was not able to find an online articel

    You can load your RAW images to any iPad either using the Camera Connection kit that comes with two dongles. One for inserting an SD card from your camera to load the images. Or the USB dongle which you can connect the USB cord for your camera to the iPad to load the images. There are a few CF card readers that will work with the iPad if your camera uses those a Google search will feret them out for you. Additionally, you can also load images to iPad, iPhone or iPod touch (as well as laptops and desktop cumputers) using WiFi as you capture them using an EyeFi SD card.
    http://www.eye.fi/
    A good app for working with EyeFi on the iPad is Shuttersnitch (though, it does not coordinate with Lightroom)
    http://www.shuttersnitch.com/
    Unfortunately their isn't any RAW processing image editing software for the iPad that Lightroom can make use of the edits. Though there is an app called Photosmith that will allow you to rate, label, add keywords etc. then you can upload that info to Lightroom on your laptop or desktop cimputer and have that info synced to the images. You do have to transfer the image files themselves from the iPad to your workstation seperately.
    http://www.photosmithapp.com/

Maybe you are looking for

  • Generating a Report from Oracle Forms

    If a want to generate a report in Oracle Reports by pressing a Button on my Oracle Forms for example for 5 text items on that form ...then how do i do it ??? plz help

  • Crash info not saved

    pelase help me whn my router got rebooted it is not saving the crash information.tell me how to save it.youc an see my snap shots.router uptime is 2 hrs 34 minutes and crashinfo is of last year.

  • BAPI_BUPA_CENTRAL_CHANGE

    Hi Friends, please help me out!!!! am changing the search terms of a BP using FM BAPI_BUPA_CENTRAL_CHANGE and also i've used BAPI_TRANSACTION_COMMIT.... But still the DB is not updating and it is not throwing any error...... here is the  piece of cod

  • How to epub text on top of images.

    I am trying to epub a children's book. I have an basic color and then I bring the image on the page but indented. Then I put the text on top of the image. I have tried articles and I can't get the text to go ontop of the image. how do I do that. The

  • Spotlight won't work in full screen apps

    Hi there. My spotlight search won't work in full screen apps. When pressing cmd+space the mac error tone sounds. I'm pretty sure thats not how it's suppose to be. How can I fix this?