Assemblies Problem



  • Hi zusammen,

    ich weiss, das Thema ist schon mal gepostet worden, kann aber nicht nachvollziehen, wie das Problem damals gelöst wurde.
    Und zwar geht es um die Private Assemblies:

    http://www.codeproject.com/KB/cpp/PrivateAssemblyProjects.aspx?msg=2891882#xx2891882xx

    Ich habe schon so viel probiert, und es geht einfach nicht.

    Wenn ich mein Projekt ohnen das Headerfile kompiliere sieht das Manifest folgender massen aus:

    <?xml version='1.0' encoding='UTF-8' standalone='yes'?>
    <assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>
      <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
        <security>
          <requestedPrivileges>
            <requestedExecutionLevel level='asInvoker' uiAccess='false' />
          </requestedPrivileges>
        </security>
      </trustInfo>
      <dependency>
        <dependentAssembly>
          <assemblyIdentity type='win32' name='Microsoft.VC90.DebugCRT' version='9.0.30729.1' processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' />
        </dependentAssembly>
      </dependency>
      <dependency>
        <dependentAssembly>
          <assemblyIdentity type='win32' name='Microsoft.VC90.DebugMFC' version='9.0.30729.1' processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' />
        </dependentAssembly>
      </dependency>
      <dependency>
        <dependentAssembly>
          <assemblyIdentity type='win32' name='Microsoft.VC90.DebugCRT' version='9.0.21022.8' processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' />
        </dependentAssembly>
      </dependency>
      <dependency>
        <dependentAssembly>
          <assemblyIdentity type='win32' name='Microsoft.VC90.DebugMFC' version='9.0.21022.8' processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' />
        </dependentAssembly>
      </dependency>
    </assembly>
    

    Mit Header:

    <?xml version='1.0' encoding='UTF-8' standalone='yes'?>
    <assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>
      <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
        <security>
          <requestedPrivileges>
            <requestedExecutionLevel level='asInvoker' uiAccess='false' />
          </requestedPrivileges>
        </security>
      </trustInfo>
      <dependency>
        <dependentAssembly>
          <assemblyIdentity type='win32' name='Microsoft.VC90.DebugCRT' version='9.0.30729.1' processorArchitecture='x86'  />
        </dependentAssembly>
      </dependency>
      <dependency>
        <dependentAssembly>
          <assemblyIdentity type='win32' name='Microsoft.VC90.DebugMFC' version='9.0.30729.1' processorArchitecture='x86' />
        </dependentAssembly>
      </dependency>
      <dependency>
        <dependentAssembly>
          <assemblyIdentity type='win32' name='Microsoft.VC90.MFCLOC' version='9.0.30729.1' processorArchitecture='x86' />
        </dependentAssembly>
      </dependency>
      <dependency>
        <dependentAssembly>
          <assemblyIdentity type='win32' name='Microsoft.VC90.ATL' version='9.0.30729.1' processorArchitecture='x86'  />
        </dependentAssembly>
      </dependency>
      <dependency>
        <dependentAssembly>
          <assemblyIdentity type='win32' name='Microsoft.VC90.OpenMP' version='9.0.30729.1' processorArchitecture='x86'  />
        </dependentAssembly>
      </dependency>
      <dependency>
        <dependentAssembly>
          <assemblyIdentity type='win32' name='Microsoft.VC90.DebugCRT' version='9.0.21022.8' processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' />
        </dependentAssembly>
      </dependency>
      <dependency>
        <dependentAssembly>
          <assemblyIdentity type='win32' name='Microsoft.VC90.DebugMFC' version='9.0.21022.8' processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' />
        </dependentAssembly>
      </dependency>
      <dependency>
        <dependentAssembly>
          <assemblyIdentity type='win32' name='Microsoft.VC90.DebugCRT' version='9.0.21022.8' processorArchitecture='x86'  />
        </dependentAssembly>
      </dependency>
      <dependency>
        <dependentAssembly>
          <assemblyIdentity type='win32' name='Microsoft.VC90.DebugMFC' version='9.0.21022.8' processorArchitecture='x86' />
        </dependentAssembly>
      </dependency>
      <dependency>
        <dependentAssembly>
          <assemblyIdentity type='win32' name='Microsoft.VC90.MFCLOC' version='9.0.21022.8' processorArchitecture='x86' />
        </dependentAssembly>
      </dependency>
      <dependency>
        <dependentAssembly>
          <assemblyIdentity type='win32' name='Microsoft.VC90.ATL' version='9.0.21022.8' processorArchitecture='x86'  />
        </dependentAssembly>
      </dependency>
      <dependency>
        <dependentAssembly>
          <assemblyIdentity type='win32' name='Microsoft.VC90.OpenMP' version='9.0.21022.8' processorArchitecture='x86'  />
        </dependentAssembly>
      </dependency>
    </assembly>
    

    Das Stdafx.h:

    // stdafx.h : include file for standard system include files,
    //  or project specific include files that are used frequently, but
    //      are changed infrequently
    //
    
    #ifndef WINVER
    #define WINVER 0x0600 //0x0501
    #endif 
    //#ifndef ALL_WARNINGS
    	#pragma warning(disable : 4006)		// warning LNK4006: "class _variant_t vtMissing" (?vtMissing@@3V_variant_t@@A) already defined in comsuppwd.lib(comutil.obj); second definition ignored
    	#pragma warning(disable : 4075)		// warning LNK4075: ignoring '/INCREMENTAL' due to '/FORCE' specification
    	#pragma warning(disable : 4088)		// warning LNK4088: image being generated due to /FORCE option; image may not run
        #pragma warning (disable: 4100)     // warning C4100: unreferenced formal parameter
    	#pragma warning(disable : 4183)		// warning C4183: 'AttachGrid': missing return type; assumed to be a member function returning 'int'
    	#pragma warning (disable: 4189)     // warning C4189: local variable is initialized but not referenced
    	#pragma warning(disable : 4221)		// warning LNK4221: no public symbols found; archive member will be inaccessible
    	#pragma warning(disable : 4244)
    	#pragma warning(disable : 4267)
    	#pragma warning(disable : 4312)
    	#pragma warning(disable : 4996)
    	#pragma warning(disable : 4800)
    	#pragma warning(disable : 4290)
    //#endif
    
    #ifndef _STDAFX_H_
    	#define _STDAFX_H_
    
    #define _BIND_TO_CURRENT_VCLIBS_VERSION 1
    //#include "UseMSPrivateAssemblies.h"
    
    #define _ATL_APARTMENT_THREADED 
    #define _ATL_ATTRIBUTES
    

    Wieso gibt es immer noch 2 Versionen im Manifest?
    Gibt es irgendwo Einstellungen?

    Ich bin echt am verzweifeln......
    Oder weiss jemand, wie man das UsePrivateAssmeblies richtig benutzt?

    Ich habe das Visual Studio 2008 mit SP1....



  • Kann man denn die Manifest Datein von Hand manipulieren?
    Merkt es dann die Applikation?



  • Hab es gefunden. Das Problem war, dass ich in den Projekt Einstellungen das Manifest eingebettet auf Ja hatte. Drum haben meinen Änderungen keinen Einfluss gehabt.
    Jetzt läuft es.....
    Unter:

    http://blog.kalmbach-software.de/2008/05/03/howto-deploy-vc2008-apps-without-installing-vcredist_x86exe/

    ist eine super Erklärung.
    Danke


Anmelden zum Antworten