Porady: tworzenie aplikacji częściowo zaufanej przez usunięcie zależności od biblioteki DLL środowiska CRT

W tym temacie omówiono sposób tworzenia częściowo zaufanych wspólnego aparatu plików wykonywalnych języka aplikacji za pomocą Visual C++ przez usunięcie zależność od msvcm90.dll.

Aplikacja Visual C++, utworzona za pomocą /clr będą miały zależność na msvcm90.dll, który jest częścią C Runtime Library.Kiedy chcesz aplikacji mają być używane w środowisku częściowej relacji zaufania, CLR wymusi niektóre zasady zabezpieczeń dostępu kodu w sprawie biblioteki DLL.W związku z tym należy usunąć tę współzależność, ponieważ msvcm90.dll zawiera kod macierzysty i zasady zabezpieczeń dostępu kodu nie można wymusić na nim.

Jeśli aplikacja nie używa żadnych funkcji biblioteka C Runtime i chcesz usunąć zależność od tej biblioteki w kodzie, będziesz musiał użyć /NODEFAULTLIB:msvcmrt.lib opcja linker i łącze z ptrustm.lib lub ptrustmd.lib.Te biblioteki zawierają pliki obiektu dla inicjowania i uninitialization aplikacji, klas wyjątków używane przez kod inicjujący i zarządzane kodu obsługi wyjątków.Łączenie w jednym z tych bibliotek usunie wszelkie zależności msvcm90.dll.

[!UWAGA]

Kolejność uninitialization zestawu mogą różnić się dla aplikacji używających biblioteki ptrust.Dla zwykłych aplikacji zespoły zazwyczaj są rozładowywane w odwrotnej kolejności, że są one ładowane, ale nie jest to gwarantowane.Do zastosowań w częściowej relacji zaufania zespoły zwykle są rozładowywane w tej samej kolejności i że są załadowane.To, także nie jest gwarantowane.

Aby utworzyć częściowo zaufanych mieszane (/ clr) aplikacji

  1. Aby usunąć zależność od msvcm90.dll, należy określić do linker o niewłączaniu tej biblioteki za pomocą /NODEFAULTLIB:msvcmrt.lib opcję.Aby uzyskać informacje o tym, jak to zrobić przy użyciu środowiska programistycznego Visual Studio lub programowo, zobacz /NODEFAULTLIB (Ignoruj biblioteki).

  2. Dodanie jednego z bibliotek ptrustm linker zależności wejściowego.W przypadku budowania aplikacji w trybie release, należy użyć ptrustm.lib.Tryb debugowania można użyć w ptrustmd.lib.Aby uzyskać informacje o tym, jak to zrobić przy użyciu środowiska programistycznego Visual Studio lub programowo, zobacz Pliki .Lib — Wejście konsolidatora.

Zobacz też

Informacje

/link (Przepuść opcje do konsolidatora)

Koncepcje

Zestawy mieszane (natywne i zarządzane)

Inicjalizacja zestawów mieszanych

Obsługa bibliotek dla zestawów mieszanych

Inne zasoby

Zabezpieczenia w kodzie natywnym i kodzie .NET Framework