Opcje kompilatora języka C# określające zasoby
Poniższe opcje kontrolują sposób tworzenia lub importowania zasobów Win32 przez kompilator języka C#. Nowa składnia programu MSBuild jest wyświetlana w obszarze Pogrubienie. Starsza składnia csc.exe jest wyświetlana w pliku code style
.
- Win32Resource /
-win32res
: określ plik zasobu Win32 (res). - Win32Icon /
-win32icon
: odwołania do metadanych z określonego pliku zestawu lub plików. - Win32Manifest /
-win32manifest
: określ plik manifestu Win32 (.xml). - NoWin32Manifest /
-nowin32manifest
: nie dołączaj domyślnego manifestu Win32. - Zasoby /
-resource
: Osadź określony zasób (krótki formularz: /res). - LinkResources /
-linkresources
: połącz określony zasób z tym zestawem.
Uwaga
Aby uzyskać więcej informacji na temat konfigurowania tych opcji dla projektu, zobacz Opcje kompilatora.
Win32Resource
Opcja Win32Resource wstawia zasób Win32 w pliku wyjściowym.
<Win32Resource>filename</Win32Resource>
filename
to plik zasobu, który chcesz dodać do pliku wyjściowego. Zasób Win32 może zawierać informacje o wersji lub mapie bitowej (ikona), które pomogą zidentyfikować aplikację w Eksplorator plików. Jeśli nie określisz tej opcji, kompilator wygeneruje informacje o wersji na podstawie wersji zestawu.
Win32Icon
Opcja Win32Icon wstawia plik .ico w pliku wyjściowym, który daje plik wyjściowy żądany wygląd w Eksplorator plików.
<Win32Icon>filename</Win32Icon>
filename
to plik .ico, który chcesz dodać do pliku wyjściowego. Plik .ico można utworzyć za pomocą kompilatora zasobów. Kompilator zasobów jest wywoływany podczas kompilowania programu Visual C++; plik .ico jest tworzony na podstawie pliku rc .
Win32Manifest
Użyj opcji Win32Manifest, aby określić plik manifestu aplikacji Win32 zdefiniowany przez użytkownika, który ma zostać osadzony w przenośnym pliku wykonywalnym projektu (PE).
<Win32Manifest>filename</Win32Manifest>
filename
to nazwa i lokalizacja pliku manifestu niestandardowego. Domyślnie kompilator języka C# osadza manifest aplikacji, który określa żądany poziom wykonywania "asInvoker". Tworzy manifest w tym samym folderze, w którym jest tworzony plik wykonywalny. Jeśli chcesz podać manifest niestandardowy, na przykład aby określić żądany poziom wykonywania "highestAvailable" lub "requireAdministrator", użyj tej opcji, aby określić nazwę pliku.
Uwaga
Ta opcja i opcja Win32Resources wzajemnie się wykluczają. Jeśli spróbujesz użyć obu opcji w tym samym wierszu polecenia, zostanie wyświetlony błąd kompilacji.
Aplikacja, która nie ma manifestu aplikacji, który określa żądany poziom wykonywania, będzie podlegać wirtualizacji plików i rejestru w ramach funkcji Kontrola konta użytkownika w systemie Windows. Aby uzyskać więcej informacji, zobacz Kontrola konta użytkownika.
Jeśli którykolwiek z tych warunków zostanie spełniony, aplikacja będzie podlegać wirtualizacji:
- Użyjesz opcji NoWin32Manifest i nie podasz manifestu w późniejszym kroku kompilacji lub jako część pliku zasobu systemu Windows (res) przy użyciu opcji Win32Resource .
- Udostępniasz manifest niestandardowy, który nie określa żądanego poziomu wykonywania.
Program Visual Studio tworzy domyślny plik manifestu i przechowuje go w katalogach debugowania i wydawania wraz z plikiem wykonywalnym. Możesz dodać manifest niestandardowy, tworząc go w dowolnym edytorze tekstów, a następnie dodając plik do projektu. Możesz też kliknąć prawym przyciskiem myszy ikonę Projekt w Eksplorator rozwiązań, wybrać polecenie Dodaj nowy element, a następnie wybrać pozycję Plik manifestu aplikacji. Po dodaniu nowego lub istniejącego pliku manifestu pojawi się on na liście rozwijanej Manifest . Aby uzyskać więcej informacji, zobacz Strona aplikacji, Projektant projektu (C#).
Manifest aplikacji można podać jako niestandardowy krok po kompilacji lub jako część pliku zasobu Win32 przy użyciu opcji NoWin32Manifest . Użyj tej samej opcji, jeśli aplikacja ma podlegać wirtualizacji plików lub rejestru w systemie Windows Vista.
NoWin32Manifest
Użyj opcji NoWin32Manifest, aby poinstruować kompilatora, aby nie osadzić żadnego manifestu aplikacji w pliku wykonywalny.
<NoWin32Manifest />
Jeśli ta opcja zostanie użyta, aplikacja będzie podlegać wirtualizacji w systemie Windows Vista, chyba że podasz manifest aplikacji w pliku zasobu Win32 lub podczas późniejszego kroku kompilacji.
W programie Visual Studio ustaw tę opcję na stronie Właściwość aplikacji, wybierając opcję Utwórz aplikację bez manifestu na liście rozwijanej Manifest. Aby uzyskać więcej informacji, zobacz Strona aplikacji, Projektant projektu (C#).
Zasoby
Osadza określony zasób w pliku wyjściowym.
<Resources Include=filename>
<LogicalName>identifier</LogicalName>
<Access>accessibility-modifier</Access>
</Resources>
filename
to plik zasobu platformy .NET, który chcesz osadzić w pliku wyjściowym. identifier
(opcjonalnie) jest nazwą logiczną zasobu; nazwa używana do ładowania zasobu. Wartość domyślna to nazwa pliku. accessibility-modifier
(opcjonalnie) to dostępność zasobu: publiczny lub prywatny. Wartość domyślna to publiczna. Domyślnie zasoby są publiczne w zestawie podczas ich tworzenia przy użyciu kompilatora języka C#. Aby zasoby zostały prywatne, określ private
jako modyfikator ułatwień dostępu. Brak innych ułatwień dostępu innych niż public
lub private
jest dozwolony. Jeśli filename
jest plikiem zasobów platformy .NET utworzonym na przykład przez Resgen.exe lub w środowisku projektowym, można uzyskać do niego dostęp z elementami członkowskimi w System.Resources przestrzeni nazw. Aby uzyskać więcej informacji, zobacz System.Resources.ResourceManager. W przypadku wszystkich innych zasobów użyj GetManifestResource
metod w Assembly klasie , aby uzyskać dostęp do zasobu w czasie wykonywania. Kolejność zasobów w pliku wyjściowym zależy od kolejności określonej w pliku projektu.
LinkResources
Tworzy link do zasobu platformy .NET w pliku wyjściowym. Plik zasobu nie jest dodawany do pliku wyjściowego. LinkResources różni się od opcji Zasób , która osadza plik zasobu w pliku wyjściowym.
<LinkResources Include=filename>
<LogicalName>identifier</LogicalName>
<Access>accessibility-modifier</Access>
</LinkResources>
filename
to plik zasobu platformy .NET, z którym chcesz połączyć się z zestawu. identifier
(opcjonalnie) jest nazwą logiczną zasobu; nazwa używana do ładowania zasobu. Wartość domyślna to nazwa pliku. accessibility-modifier
(opcjonalnie) to dostępność zasobu: publiczny lub prywatny. Wartość domyślna to publiczna. Domyślnie połączone zasoby są publiczne w zestawie podczas tworzenia za pomocą kompilatora języka C#. Aby zasoby zostały prywatne, określ private
jako modyfikator ułatwień dostępu. Żaden inny modyfikator inny niż public
lub private
jest dozwolony. Jeśli filename
jest plikiem zasobów platformy .NET utworzonym na przykład przez Resgen.exe lub w środowisku projektowym, można uzyskać do niego dostęp z elementami członkowskimi w System.Resources przestrzeni nazw. Aby uzyskać więcej informacji, zobacz System.Resources.ResourceManager. W przypadku wszystkich innych zasobów użyj GetManifestResource
metod w Assembly klasie , aby uzyskać dostęp do zasobu w czasie wykonywania. Plik określony w filename
pliku może mieć dowolny format. Na przykład możesz utworzyć natywną część zestawu dll natywną, aby można było ją zainstalować w globalnej pamięci podręcznej zestawów i uzyskać do niej dostęp z kodu zarządzanego w zestawie. Można to zrobić w konsolidatorze zestawów. Aby uzyskać więcej informacji, zobacz Al.exe (konsolidator zestawu) i Praca z zestawami i globalną pamięcią podręczną zestawów.