2013-12-09 23 views
10

Sto lavorando a un'applicazione Windows (C#) che è stata creata in VS 2012 (Framework 4.5) moduli di Windows. I requisiti richiedono che venga utilizzato per le versioni precedenti di Windows, pertanto imposto il framework di destinazione su .NET Framework 4 e l'obiettivo della piattaforma su x86. Una volta che il suo fare e provo a compilare ricevo il seguente errore:Errore strumento personalizzato: Impossibile generare il file

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

ho cercato deselezionando la casella "Reuse types in referenced assemblies" nei riferimenti di servizio prima di lanciare al quadro 4, ma senza fortuna.

risposta

17

Apparentemente, a volte questo errore può essere evitato semplicemente re-adding the reference. Hai provato?

+0

Ha funzionato, grazie! – Danno

14

Invece di aggiungere nuovamente il riferimento, è possibile rimuovere anche il codice non compreso da .NET 4.0 nel file Service References\<reference name>\Reference.svcmap. Nota che dovrai navigare su questo file tramite explorer, che non viene visualizzato in Visual Studio. Per i miei riferimenti, ho semplicemente rimosso questa linea

<GenerateTaskBasedAsynchronousMethod>true</GenerateTaskBasedAsynchronousMethod> 

Quindi fare clic con il riferimento al servizio in VS2013 e premi "di riferimento Update Service". Riesaminerà il servizio e genererà il file Reference.cs in modo che sia compatibile con .NET 4.0.

+0

Grazie, ho avuto la situazione in cui il servizio non può essere aggiornato perché è stato portato offline dal proprietario, l'unica versione del servizio ancora disponibile era quella che utilizzava l'HTTPS e l'handshake SSL a 2 vie (non ho nemmeno provato a abilitare Visual Studio per estrarre il file WSDL da lì). Così ho modificato manualmente il file .svcmap, ma ho anche dovuto compilare manualmente Reference.cs perché era troncato (probabilmente da VS), per fortuna abbiamo avuto un backup del progetto, quindi ho preso Reference.cs da lì, ho eliminato il cestino e le directory obj, ricostruito tutto e tutto ha funzionato di nuovo. –

+0

La prima cosa che ho pensato è stata aggiungere nuovamente il riferimento del servizio. Ho deciso di cercare solo perché sapevo che c'era una soluzione più semplice. Grazie! – Luty

Problemi correlati