Question

J'ai un cours fort nommé assemblage contenant du modèle qui peuvent être partagées entre plusieurs applications (services WCF dans IIS) hébergés sur la même machine.

Au lieu de chaque service ayant leur propre copie de cette DLL dans le dossier Bin, je veux ajouter à GAC.

J'utilise un gacutil.exe pour .NET4: Microsoft (R) .NET Global Assembly Cache Utility. Version 4.0.30319.1 Copyright (c) Microsoft Corporation. All rights reserved.

La DLL est enregistrée dans GAC, mais se retrouve dans C:\Windows\Assembly (GAC) - 2,0. (Non en C:\Windows\Microsoft.NET\Assembly GAC 4)

Quand j'enregistrer la DLL dans le GAC et le retirer du dossier Bin, mes applications échouent avec:

Could not load file or assembly 'MyCompany.Enterprise.BOM' or one of its dependencies. The system cannot find the file specified. at System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)...

Remarque: Server 2008 R2 64 bits, l'assemblage est construit pour MSIL, .NET 4.0. J'utilise gacutil.exe qui est fourni avec Windows SDK v7.1 et est dans le dossier NETFX 4.0 Tools.

Qu'est-ce que je peux être absent? Je ne peux pas penser à d'autres solutions si toutes les idées sont les bienvenues.

EDIT (manifeste):

// Metadata version: v2.0.50727
.assembly extern mscorlib
{
  .publickeytoken = (B7 7A 5C 56 19 34 E0 89 )                         // .z\V.4..
  .ver 2:0:0:0
}
.assembly extern System.Runtime.Serialization
{
  .publickeytoken = (B7 7A 5C 56 19 34 E0 89 )                         // .z\V.4..
  .ver 3:0:0:0
}
.assembly HCS.Enterprise.BOM
{
  .custom instance void [mscorlib]System.Runtime.InteropServices.GuidAttribute::.ctor(string) = ( 01 00 24 63 31 34 64 39 31 65 32 2D 30 35 31 65   // ..$c14d91e2-051e
                                                                                                  2D 34 66 65 31 2D 38 62 37 30 2D 61 36 36 33 66   // -4fe1-8b70-a663f
                                                                                                  39 61 37 62 34 33 35 00 00 )                      // 9a7b435..
  .custom instance void [mscorlib]System.Reflection.AssemblyKeyFileAttribute::.ctor(string) = ( 01 00 20 43 3A 5C 48 43 53 2E 45 6E 74 65 72 70   // .. C:\HCS.Enterp
                                                                                                72 69 73 65 5C 4B 65 79 5C 48 43 53 4B 65 79 2E   // rise\Key\HCSKey.
                                                                                                73 6E 6B 00 00 )                                  // snk..

  // --- The following custom attribute is added automatically, do not uncomment -------
  //  .custom instance void [mscorlib]System.Diagnostics.DebuggableAttribute::.ctor(valuetype [mscorlib]System.Diagnostics.DebuggableAttribute/DebuggingModes) = ( 01 00 02 00 00 00 00 00 ) 

  .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilationRelaxationsAttribute::.ctor(int32) = ( 01 00 08 00 00 00 00 00 ) 
  .custom instance void [mscorlib]System.Runtime.CompilerServices.RuntimeCompatibilityAttribute::.ctor() = ( 01 00 01 00 54 02 16 57 72 61 70 4E 6F 6E 45 78   // ....T..WrapNonEx
                                                                                                             63 65 70 74 69 6F 6E 54 68 72 6F 77 73 01 )       // ceptionThrows.
  .custom instance void [mscorlib]System.Reflection.AssemblyFileVersionAttribute::.ctor(string) = ( 01 00 07 31 2E 30 2E 30 2E 30 00 00 )             // ...1.0.0.0..
  .custom instance void [mscorlib]System.Reflection.AssemblyTitleAttribute::.ctor(string) = ( 01 00 12 48 43 53 2E 45 6E 74 65 72 70 72 69 73   // ...HCS.Enterpris
                                                                                              65 2E 42 4F 4D 00 00 )                            // e.BOM..
  .custom instance void [mscorlib]System.Reflection.AssemblyDescriptionAttribute::.ctor(string) = ( 01 00 00 00 00 ) 
  .custom instance void [mscorlib]System.Reflection.AssemblyConfigurationAttribute::.ctor(string) = ( 01 00 00 00 00 ) 
  .custom instance void [mscorlib]System.Reflection.AssemblyCompanyAttribute::.ctor(string) = ( 01 00 0E 48 6F 72 69 7A 6F 6E 2D 42 43 42 53 4E   // ...HN
                                                                                                4A 00 00 )                                        // J..
  .custom instance void [mscorlib]System.Reflection.AssemblyProductAttribute::.ctor(string) = ( 01 00 12 48 43 53 2E 45 6E 74 65 72 70 72 69 73   // ...HCS.Enterpris
                                                                                                65 2E 42 4F 4D 00 00 )                            // e.BOM..
  .custom instance void [mscorlib]System.Reflection.AssemblyCopyrightAttribute::.ctor(string) = ( 01 00 20 43 6F 70 79 72 69 67 68 74 20 C2 A9 20   // .. Copyright .. 
                                                                                                  48 6F 72 69 7A 6F 6E 2D 42 43 42 53 4E 4A 20 32   // H2
                                                                                                  30 31 30 00 00 )                                  // 010..
  .custom instance void [mscorlib]System.Reflection.AssemblyTrademarkAttribute::.ctor(string) = ( 01 00 00 00 00 ) 
  .custom instance void [mscorlib]System.Runtime.InteropServices.ComVisibleAttribute::.ctor(bool) = ( 01 00 00 00 00 ) 
  .publickey = (00 24 00 00 04 80 00 00 94 00 00 00 06 02 00 00   // .$..............
                00 24 00 00 52 53 41 31 00 04 00 00 01 00 01 00   // .$..RSA1........
                3B 65 DD 3B C7 49 A7 F4 C9 50 BE 27 F9 62 B6 54   // ;e.;.I...P.'.b.T
                D1 26 7B DC 5B EF C1 02 59 E8 77 D4 3D F5 2F 50   // .&{.[...Y.w.=./P
                94 22 AC C3 B7 07 71 A4 99 D4 FF 10 ED 05 6D 70   // ."....q.......mp
                9A 9D 99 DC 33 1F 8A 3F A5 77 2E C5 5F 9D 35 15   // ....3..?.w.._.5.
                BA 54 47 47 C2 8B 13 8C 57 57 C6 1E F5 AB 7B D5   // .TGG....WW....{.
                B8 87 DD 4A F3 69 01 B2 6B C8 88 99 04 09 19 FC   // ...J.i..k.......
                5E 51 7E 2A B9 B5 03 80 C9 A3 EA ED EF B8 EC BF   // ^Q~*............
                EB 97 30 EC D9 E4 36 7C 0F 64 B7 27 9D 29 0D C5 ) // ..0...6|.d.'.)..
  .hash algorithm 0x00008004
  .ver 1:0:0:0
}
.module HCS.Enterprise.BOM.dll
// MVID: {D4D8B566-6B0D-4F8D-ABD4-C3A1339B4F84}
.imagebase 0x00400000
.file alignment 0x00000200
.stackreserve 0x00100000
.subsystem 0x0003       // WINDOWS_CUI
.corflags 0x00000009    //  ILONLY
// Image base: 0x031B0000
Était-ce utile?

La solution

Comme on le voit dans le manifeste, la DLL est une version d'exécution 2.0, même le gacutil de 4,0 placera dans le 2.0 GAC.

Le manifeste est créé au moment de la compilation, il doit y avoir quelque chose de mal avec votre projet et / ou les paramètres de compilation.

Je suppose que vous utilisez Visual Studio, vérifier si les projets paramètres (pas de solutions) dans l'onglet d'application.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top