Mantenere la versione corretta per una dll COM di riferimento in una .Progetto in rete

StackOverflow https://stackoverflow.com/questions/41832

  •  09-06-2019
  •  | 
  •  

Domanda

Voglio fare riferimento a una DLL COM in .Progetto in rete, ma voglio anche assicurarsi che l'interop DLL creata avrà la versione corretta (in modo che le patch si sa quando la DLL deve essere modificato).

Se io uso TlbImp Posso specificare la versione richiesta con la /asmversion bandiera, ma quando aggiungo direttamente da Visual Studio si ottiene una versione che non ha nulla a che fare con l'originale COM DLL della versione.

Ho provato a cambiare la versione in .vcproj file

<ItemGroup>
    <COMReference Include="MYDLLLib">
        <Guid>{459F8813-D74D-DEAD-BEEF-00CAFEBABEA5}</Guid>
        <!-- I changed this -->
        <VersionMajor>1</VersionMajor> 
        <!-- This too -->   
        <VersionMinor>0</VersionMinor> 
        <Lcid>0</Lcid>
        <WrapperTool>tlbimp</WrapperTool>
        <Isolated>False</Isolated>
    </COMReference>
</ItemGroup>

Ma poi il progetto non è riuscito a costruire con il seguente errore:

errore CS0246:Il tipo o il nome dello spazio dei nomi 'MYDLLLib' non trovato (manca una direttiva using o un riferimento a un assembly?)

C'è un modo per ottenere questo fatto, senza creare tutti i miei COM riferimenti con TlbImp in anticipo?

Se la risposta è c'è un modo per specificare un numero di build in aggiunta alle versioni principali e secondarie?(e.g 1.2.42.0)

È stato utile?

Soluzione

Il Guid si riferisce il Guid per la Libreria non la DLL direttamente.I numeri di versione, fare riferimento alla Libreria dei tipi versione non la Dll.

Il numero di versione viene dal vostro file idl, e credo che supporta solo una versione maggiore e minore e non una versione build.È questo cambiamento di versione quando si modifica la libreria?

I numeri di versione verrà visualizzato nel registro di sistema sotto:

HKEY_CLASSES_ROOT\Typelib\{typelib uuid}\Major.Minor

Se il minore è impostato a 0, allora io credo che importare l'ultima versione che corrisponde alla versione principale, ma la versione principale deve essere impostato a qualcosa.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top