2011-06-27 19 views
8

Więc oto krótkie podsumowanie problemu:ClickOnce Deployment - Stowarzyszenie Plik nie Rejestrowanie

Podsumowanie:

ustawić fileAssociations moich aplikacji ClickOnce, jednak są one nie rejestracji gdy jest I run/update mój program (w tym, pliki .bvr, które próbuję powiązać, nie mają ikony i nie mogę ich dwukrotnie kliknąć, aby uruchomić moją aplikację).

Extra Info:

raz pierwszy spróbował zamiar Właściwości -> Publish -> Opcje -> Skojarzenia plików i ustawień moje skojarzenia stamtąd. Po nieudanej próbie że, Próbowałem ustawienie go bezpośrednio w app.manifest:

<fileAssociation 
xmlns="urn:schemas-microsoft-com:clickonce.v1" 
extension=".bvr" 
description="Behavior File" 
progid="GGS.Behavior" 
defaultIcon="bvrico.ico" 
/> 

Czytałem wiele artykułów na temat tego, że zaczynam się denerwować. Niektóre informacje:

  1. mam ustawić go do stosowania w pełnym zaufaniu (Under Zabezpieczenia -> Włącz ustawienia zabezpieczeń ClickOnce -> To jest aplikacja na cały zaufanie)
  2. Używam .NET 4.0 i Visual Studio 2010
  3. włączyć tryb „offline”

ja również obsługiwać dane przekazywane przez AppDomain, ale wątpię, że naprawdę coś zmienia.

Zastanawiam się, czy skojarzenia plików są ustawiane tylko podczas instalacji.

W każdym razie, naprawdę doceniłbym pewien wgląd w ten problem. Naprawdę chciałbym skojarzeń plików w moim projekcie.

Dziękuję wszystkim z góry.

PS: Testowane na Windows XP i Windows 7.

Edit: Ja też napisali to na Microsoft, btw.

http://social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/d610cd55-f3c7-4775-a417-251261832200

Jeśli ktoś chciałby pisać odpowiedzi na nie, jak również. Naprawdę nie mogę wymyślić tego. : D

+0

Nie istnieje linia poleceń do zarejestrowania powiązania plików. Po prostu zarejestruj ją ponownie, uruchamiając małą linię poleceń przy starcie aplikacji i powinieneś być gotowy. http://commandwindows.com/assoc.htm – CodingBarfield

+0

Powiązania plików wydają się nie być ustawione tylko podczas instalacji - zaktualizowałem aplikację testową, która nie miała powiązań z nowymi ustawieniami dodawania powiązań plików, a aplikacja zaczęła działać poprawnie po dwukrotnym kliknięciu powiązany plik. –

Odpowiedz

0

ClickOnce nie przechodzi argumenty linii komend zwykły sposób, ale przez

AppDomain.CurrentDomain.SetupInformation.ActivationArguments.ActivationData 

Więc w uruchomieniu aplikacji trzeba będzie sprawdzić pogodę posiada ona żadnych strun i modyfikować swój startup-zachowanie.

Dzieje się tak, ponieważ aplikacje ClickOnce są uruchamiane za pośrednictwem manifestu wdrażania na serwerze, a nie przez .exe. Btw: Ustawianie powiązań plików za pośrednictwem Właściwości -> Opublikuj -> Opcje -> Powiązania plików powinny działać poprawnie.

Edit: (jak tworzę przykładową aplikację)

  • tworzyć Windows Forms app
  • aktywować ustawienia ClickOnce z zabezpieczeniami, wybierz pełni zaufaną aplikację
  • w opcji ClickOnce -> opisy, ustaw wydawca, pakiet i nazwę produktu
  • w opcjach ClickOnce -> powiązania plików dodaj nowe rozszerzenie
  • opublikuj aplikację, zainstaluj aplikację, sprawdź prognozę pogody podczas otwierania pliku (nie ma)

Wszystkie ustawienia, których nie wymieniono, nie zostały dotknięte ... to wszystko, co zrobiłem!

Wygląda na to, że właśnie to zrobiłeś - może spróbuj utworzyć prostą aplikację testową i sprawdź, czy to działa. Ponieważ ta odpowiedź tak naprawdę nie odpowiada na twoje pytanie, proszę dać mi znać, kiedy skończysz, abym mógł go usunąć.

+0

Nie widzę, jak to pomaga. Doceniam odpowiedź, ale jak powiedziałem, Właściwości -> Opublikuj -> Opcje -> Powiązania plików nie działają. Obsługuję również dane przekazywane przez AppDomain, które nie powinny (i nie) zmieniać niczego. –

+0

Cóż, stworzyłem testową aplikację przed opublikowaniem tego. Tylko aplikacja formularzy systemu Windows, zastosowała wybrane ustawienia ClickOnce (offline, zaufana aplikacja i ustaw powiązanie plików za pomocą opcji), a następnie dodała powyższy kod. Mi to pasuje. Masz jednak rację, że nie jest konieczne uzyskanie linii poleceń - pomieszałem to, ponieważ potrzebowałem również do mojego poprzedniego projektu. Niemniej jednak mój prosty projekt testowy (zgodnie z opisem) i jego skojarzenia plików działają. Spróbuję jeszcze raz i stworzę projekt, i dam ci znać dokładnie, co zrobiłem za chwilę. –

+0

Moja aplikacja wykonuje te czynności, ale nie działa dla mnie. To bardzo dziwne, nie? –

1

Czy jesteś pewien, że poniższy artykuł nie stawiła się Otwórz za pomocą ... opcje plików - ClickOnce aplikacji Wdrożenie Wsparcie Biblioteka z ikona znaku zapytania? Spróbuj ustawić go jako domyślny.

Miałem ten sam problem co Twój, ale zauważyłem, że ta dziwna opcja pojawia się po zainstalowaniu aplikacji. Po tak wielu próbach i szukaniu go w sieci spróbowałem prostej rzeczy - zgodziłam się, aby ta Clickonce Application Deployment Support Library była domyślną dla żądanego typu pliku. I ta da! Ikona pliku zmieniła się w ikonę mojej aplikacji i uruchomiła moją aplikację. Domyślam się, że mój pożądany typ pliku był już powiązany z Notatnikiem, więc ClickOnce odmówił zastąpienia tego ustawienia.

0

Stało się tak, gdy zwiększyliśmy numer wersji i opublikowano aplikację w innym podfolderze. Na przykład

  • Wersja 1.0 została opublikowana na \\server\product\version 1.0\
  • wersja 2.0 została opublikowana na \\server\product\version 2.0\

I po odpowiedzi na @EvAlex, a dialog został poproszony i kliknąłem "Szczegóły" przycisk, który otworzył plik dziennika. W pliku dziennika zauważyłem, że program próbował pobrać ze ścieżki starej wersji, ścieżka, której szukała, nadal jest \\server\product\version 1.0\.

Potem zdałem sobie sprawę, że powinno to być coś w rejestrze.

Otworzyłem regedit, a nie poszukiwanie product (która to nazwa mój produkt), a okazało się, że ścieżka, że ​​błąd dziennika zarzut na podstawie kilku klawiszy jak poniższych:

  • HKEY_CURRENT_USER \ Software \ Classes .myext
  • HKEY_CURRENT_USER \ Software \ Classes \ MyProgId
  • HKEY_CLASSES_ROOT \ MyProgId

Usunąłem te klucze i powtarzać czynność Open With, ikona powraca i jest następnie pracował jak czar.

Wygląda na to, że aplikacja nie została całkowicie odinstalowana lub istnieje błąd związany z aktualizacją tych kluczy przez ClickOnce z nieznanych przyczyn.

4

Jeśli typ pliku, który próbujesz zarejestrować, został wcześniej zarejestrowany w innym programie (np. W notatniku), lub nawet otwarty w notatniku, jedynym sposobem znalezienia działającego jest usunięcie z rejestru rodzaju pliku 2 lokalizacje, a następnie uruchom ponownie komputer. Następnie opublikuj aktualizację swojej aplikacji i jeśli jest to problem w dobrej formie.

HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ FileExts \ .bvr

HKEY_CLASSES_ROOT \ .bvr

Reboot

Opublikuj aktualizację swojej aplikacji.

+0

Co to jest innego typu? Odpowiedź jest niekompletna! – CinCout

+0

Po prostu usunąłem rozszerzenie pliku na powyższych kluczy rejestru, odinstalowałem program, ponownie zainstalowałem program i zadziałało. W mojej sytuacji najprawdopodobniej inny program był związany z rozszerzeniem pliku. – iCode

0

Znalazłem post Alana powyżej najbardziej pomocne. Działał tak, jak napisano dla mnie na jednym z moich komputerów, ale na innym nie bardzo mnie tam dostał. Miałem nadzieję, że dodam komentarz do jego wpisu, ale Stack Overflow mówi, że nie mam za to punktów reputacyjnych.

Jeśli jej potrzebujesz, mam nadzieję, że nadal możesz go znaleźć tutaj.

miałem również usunąć klucz jak następuje dla każdego mapowania rozszerzeń:

HKEY_CLASSES_ROOT\AppName.FileType.0 

dodanie tego do usuwania Adama innych .ext kluczy Naprawiono problem na moim drugim komputerze.