Benutzer:MovGP0/C♯/Assemblies

aus Wikipedia, der freien Enzyklopädie
   MovGP0        Über mich        Hilfen        Artikel        Weblinks        Literatur        Zitate        Notizen        Programmierung        MSCert        Physik      


Assembly Management

Assembly Signature

Sign Assembly
  • Generate Key for Assembly
sn -k myKey.snk
  • Project Settings → Signing → Sign the Assembly → select *.snk file
Get key from Assembly
sn -Tp "$env:windir\Microsoft.NET\Framework\v4.0.30319\System.Data.dll"

Achtung: Für veröffentlichte Anwendungen wird ein Authenticode[1] benötigt.

Global Assembly Cache (GAC)

List Assemblies
gacutil -l
Install Assembly
gacutil -l C:\myassembly.dll
Uninstall Assembly
gacutil -u "myassembly.dll"

Assembly Redirect

<configuration>
   <runtime>
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
         <dependentAssembly>
            <assemblyIdentity name="myAssembly" publicKeyToken="32ab4ba45e0a69a1" culture="en-us" />
            <bindingRedirect oldVersion="1.0.0.0" newVersion="2.0.0.0" />
         </dependentAssembly>
      </assemblyBinding>
   </runtime>
</configuration>

Additional Assembly Locations

<configuration>
   <runtime>
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
         <dependentAssembly>
            <codeBase version="1.0.0.0" href="http://www.mydomain.com/ReferenceAssembly.dll" />
         </dependentAssembly>
      </assemblyBinding>
   </runtime>
</configuration>

WinRT (Windows Runtime)

  • Laufzeitumgebung für Apps unter Windows 8 und Windows RT
  • generiert Windows Metadata Datei (*.winmd) statt .NET DLLs
  • WinMD enthalten nativen Code und Metadaten
  • Metadaten werden bei Installation in $env:systemroot\System32\WinMetadata\ gespeichert. Der Code verbleibt in der Anwendung.
Prokjekttypen
Projekttyp Verwendung
Windows Runtime Component JavaScript und C#
Class Library (Windows Store apps) nur C#

Einschränkungen

  • Öffentliche Rückgabewerte müssen WinRT Datentypen sein
  • Einschränkungen bei public class
    • keine Generics
    • nur WinRT-Interfaces erlaubt
    • keine Unterklasse von Nicht-WinRT-Klasse
    • müssen als sealed gekennzeichnet sein
  • Einschränkungen bei public struct:
    • alle Member public
    • alle Member sind entweder ein value type oder string
  • Namespace muss gleich sein wie der Name der Assembly; darf nicht mit „Windows“ beginnen

Assembly Information

> [reflection.assemblyname]::GetAssemblyName("${pwd}\Microsoft.GLEE.dll") | fl

Name                  : Microsoft.GLEE
Version               : 1.0.0.0
CultureInfo           :
CodeBase              : file:///C:/projects/powershell/BuildAnalyzer/...
EscapedCodeBase       : file:///C:/projects/powershell/BuildAnalyzer/...
ProcessorArchitecture : MSIL
Flags                 : PublicKey
HashAlgorithm         : SHA1
VersionCompatibility  : SameMachine
KeyPair               :
FullName              : Microsoft.GLEE, Version=1.0.0.0, Culture=neut...

The element ProcessorArchitecture[2] identifies the target processor.

Referenzen

  1. Authenticode. In: MSDN. Microsoft, abgerufen am 28. Mai 2014.
  2. ProcessorArchitecture Enumeration. In: MSDN. Microsoft, abgerufen am 18. Juni 2013 (englisch).

Quellen

Siehe auch