2013-12-09 21 views
10

Pracuję nad aplikacją systemu Windows (C#) utworzoną w formularzach okien VS 2012 (Framework 4.5). Wymagania wymagają, aby był on używany w starszych wersjach systemu Windows, dlatego ustawiam docelową strukturę na .NET Framework 4 i docelową platformę na x86. Po jej zrobić i staram się skompilować otrzymuję następujący błąd:Błąd narzędzia niestandardowego: nie można wygenerować pliku

Custom tool error: Failed to generate file: The service reference is not valid for the current .NET Framework version or project type. You can change the service reference configuration in the .svcmap

Próbowałem odznaczając pole „Reuse types in referenced assemblies” w odnośnikach usługi przed skakaniu do ramy 4, ale bez powodzenia.

Odpowiedz

17

Wygląda na to, że czasami tego błędu można uniknąć, po prostu re-adding the reference. Czy próbowałeś tego?

+0

Czy to i zadziałało, dzięki! – Danno

14

Zamiast ponownie dodawać odniesienie, można również usunąć kod, który nie jest zrozumiały przez .NET 4.0 z pliku Service References\<reference name>\Reference.svcmap. Zauważ, że będziesz musiał przejść do tego pliku przez explorer, nie pojawi się on w Visual Studio. Dla moich referencji, po prostu usunięto tę linię

<GenerateTaskBasedAsynchronousMethod>true</GenerateTaskBasedAsynchronousMethod> 

Następnie kliknij prawym przyciskiem myszy nazwę serwisowa w VS2013 i hit „odniesienie Update Service”. Przeanalizuje ponownie usługę i wygeneruje plik Reference.cs, aby był zgodny z .NET 4.0.

+0

Dzięki, miałem sytuację, w której usługa nie mogła zostać odświeżona, ponieważ została przejęta przez właściciela w trybie offline, jedyna dostępna wersja usługi to ta, która korzystała z HTTPS i dwukierunkowego uwierzytelniania SSL (nawet nie próbowałem włączyć Visual Studio, aby pobrać plik WSDL z tego miejsca). Więc ręcznie edytowałem plik .svcmap, ale musiałem też ręcznie wypełnić plik Reference.cs, ponieważ został on skrócony (prawdopodobnie przez VS), na szczęście mieliśmy kopię zapasową projektu, więc wziąłem Reference.cs z tego miejsca, usunąłem katalogi bin i obj, przebudowałem wszystko i wszystko znów działało. –

+0

Pierwszą rzeczą, o której pomyślałem, było ponowne dodanie odwołania do usługi. Postanowiłem przeszukać tylko dlatego, że wiedziałem, że istnieje prostsze rozwiązanie. Dzięki! – Luty

Powiązane problemy