Typ Interop nie może być osadzony
Tworzę aplikację webową na. Net 4.0 framework (beta2) w C#.
Kiedy próbuję użyć zestawu o nazwie "ActiveHomeScriptLib", pojawia się następujący błąd:
Typ Interop "ActiveHomeScriptLib.ActiveHomeClass" nie może być osadzony. Użyj odpowiedniego zamiast tego interfejs.
Kiedy zmieniam framework na wersję 3.5, Nie mam żadnych błędów.
Co to jest typ Interop i dlaczego występuje tylko wtedy, gdy używam frameworka 4.0?
9 answers
. NET 4.0 umożliwia osadzanie podstawowych zestawów interop (a raczej ich potrzebnych bitów) w twoim zestawie, dzięki czemu nie musisz ich wdrażać obok aplikacji.
Z jakiegokolwiek powodu, ten zespół nie może być osadzony - ale brzmi, jakby to nie był problem dla Ciebie. Wystarczy otworzyć zakładkę Właściwości dla złożenia w Visual Studio 2010 i ustawić "Embed Interop Types"Na " False".
EDIT: Zobacz też odpowiedź Michaela Gustusa , usunięcie Class
przyrostek od typów, których używasz.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:10:42
W większości przypadków ten błąd jest wynikiem kodu, który próbuje utworzyć instancję obiektu COM. Na przykład, oto fragment kodu uruchamiającego Excela:
Excel.ApplicationClass xlapp = new Excel.ApplicationClass();
Zazwyczaj w. Net 4 wystarczy usunąć przyrostek 'Class' i skompilować kod:
Excel.Application xlapp = new Excel.Application();
Wyjaśnienie MSDN jest tutaj .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-06-03 19:54:15
Tak jak Jan Zajęło mi to trochę czasu .. = Tak dla każdego, kto jest zaślepiony frustracją.
- Kliknij prawym przyciskiem myszy zespół, który dodałeś w Eksploratorze rozwiązań w ramach projektu References . (W moim przypadku WIA)
- Kliknij właściwości.
- i powinna być tam opcja dla Embed Interop Assembly.
- Ustaw Na False
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-01-19 09:12:46
Rozszerzenie na poprawną odpowiedź Jona.
Problem polega na tym, że połączenie nowej funkcji" Embed Interop Types " (lub NoPIA) z użyciem typu klasy. Funkcja "Embed Interop Types" działa zasadniczo statycznie łącząc we wszystkich typach z PIA (Primary Interop Assembly) do zestawu odwołującego, usuwając koszty wdrożenia.
Ta funkcja działa świetnie dla większości typów w PIA, ale ma ograniczenia. Jednym z nich jest to, że nie można osadzanie klas (to problem z obsługą). Misha ma szczegółowy artykuł na blogu o tym, dlaczego nie jest to dozwolone
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-03-20 17:42:41
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-04-27 01:34:01
Got the solution
Przejdź do referencji kliknij prawym przyciskiem myszy żądaną bibliotekę dll otrzymasz opcję "Embed Interop Types" na "False"lub " True".
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-03 11:14:03
Napotkałem ten problem podczas ściągania projektu TFS na moją lokalną maszynę. Podobno działał dobrze na maszynie faceta, który to napisał. Po prostu to zmieniłem...
WshShellClass shellClass = new WshShellClass();
Do tego...
WshShell shellClass = new WshShell();
Teraz działa jak mistrz!Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-12 15:34:54
Miałem ten sam problem w VB.NET 2013 z Office 2007 i to rozwiązało:
VS 2013 VB.NET Project > Props > Refs > Microsoft Word 12.0 Object lib > Embed Interop Types: change True to False
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-10-04 14:23:12
Http://digital.ni.com/public.nsf/allkb/4EA929B78B5718238625789D0071F307
Ten błąd występuje, ponieważ wartość domyślna jest prawdziwa dla właściwości Embed Interop Types zestawu Interop API TestStand, do którego odnosi się nowy projekt. Aby rozwiązać ten błąd, zmień wartość właściwości Embed Interop Types na False, wykonując następujące kroki: Wybierz odniesienie do zestawu TestStand Interop w sekcji referencje projektu w Eksploratorze rozwiązań. Znajdź Osadzenie właściwości Interop Types w przeglądarce właściwości i zmiana wartości na False
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-06-10 07:57:12