2009-12-14 26 views
9

Mam projekt biblioteki klasy C#, który używa biblioteki dll COM zarejestrowanej w systemie. Teraz chcę wdrożyć dll COM jako zespół side-by-side, więc nie muszę go rejestrować, ani ingerować w inne aplikacje, które mogą używać innej wersji biblioteki dll.Jak dodać manifest do biblioteki .NET DLL?

Dodałem app.manifest do projektu C# za pomocą menu Dodaj nowe elementy, ale nie jestem pewien, co dalej. We właściwościach projektu/aplikacji/ikonach i manifestach lista rozwijana manifestu jest wyłączona. Nie wiem, jak ominąć to. Dodałem plik manifestu, dlaczego nie ma go na liście rozwijanej?

Mam manifest dla biblioteki dll COM, która działa z aplikacjami C++, i myślę, że zachowam to, jak jest. Teraz muszę wiedzieć, jak edytować app.manifest dla projektu C#. Zacznę od dodania znanego dobrego elementu zależności. Ale potrzebuję tutoriala, jak to ustawić, nie widzę go nigdzie indziej.

Używam VS2008

+1

Widzę, że pole manifestu jest włączone dla projektu exe. Czy projekt biblioteki klas nigdy się nie manifestuje? –

Odpowiedz

10

Zdecydowanie można osadzić manifest w bibliotece .net. Treść manifestu aplikacji nie odnosi się do zespołu, ale niektóre z nich. Na przykład wpisy UAC nie mają sensu dla manifestu komponentu, ale assemblyIdentity robi.

Używając narzędzia MT.EXE, można osadzić manifestu do dll:

ankiety:

mt.exe -manifest filename.dll.manifest -outputresource:filename.dll;#2 

Extract:

mt.exe -inputresource:filename.dll;#2 -out:filename.dll.extracted.manifest 

Oto kolejne linki na powiązanej informacji:

Kolejny przykład osadzenia dll: http://msdn.microsoft.com/en-us/library/ms235591(v=VS.100).aspx

Opis instrukcji SxS: http://msdn.microsoft.com/en-us/library/ms973915.aspx

2

W większości zastosowań, oczywisty jest zwykle stosowany do eks/apps gospodarza - jest to poziom, na którym ktoś rozumie jak wszystkie zależne zespoły i ich możliwości oczek razem.

Na przykład, w przypadku ustawiania znacznika UAC za pomocą elementu trustinfo/security/requestedPrivileges/requestedExecutionLevel, przypadek zespołu zależnego, który zgodnie z prawem może powiedzieć "Mówię, że wszyscy rozumiemy o UAC", nie powoduje sens.

+0

Tak, znalazłem to. Czy wiesz coś na temat manifestu buforowania przez system operacyjny? –

+0

Niestety, nie wiem nic o buforowaniu (domniemanie OTTOMH: nie jest to po prostu odczytywane z zasobów EXE w czasie ładowania i wszelkie buforowanie byłoby przejrzyste - chyba nie zapytałbyś, czy to było proste!) –

+2

To nie jest prawda . Pliki DLL mogą zawierać manifesty i aktywować je. Wystarczy to zrobić ręcznie, korzystając z interfejsu API kontekstu aktywacji. –

Powiązane problemy