Ho un progetto C# che sto creando in VS 2010. Fa riferimento a un progetto C++ tramite COM, che è anche una parte della soluzione. Venerdì scorso, ho creato una build di successo, cambiato una singola riga di codice, fatto un'altra build e ho iniziato a ricevere un errore su .NET.La versione di destinazione di .NET Framework non corrisponde alla condizione di avvio
La versione di destinazione di .NET Framework nel progetto non corrisponde alla versione della condizione di avvio di .NET Framework ".NET Framework 3.5". Aggiornare la versione della condizione di avvio di .NET Framework in modo che corrisponda alla versione di destinazione di .NET Framework nella finestra di dialogo Opzioni di compilazione avanzate (VB) o nella pagina dell'applicazione (C#, F #).
- Progetto -> Proprietà -> Applicazioni -> Target quadro (per ogni progetto sia in Debug e Release)
- Progetto -> Proprietà -> Pubblica -> Prerequisiti (confermato .NET 3.5 e Windows Installer 3.1)
- Setup -> condizioni di avvio -> .NET Framework
- Setup -> Proprietà -> Prerequisiti
ho anche rivisto il codice vdproj per il mio programma di installazione, confermando le condizioni di lancio erano .NET 3.5:
"ComponentsUrl" = "8:"
"Items"
{
"{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:Microsoft.Net.Framework.3.5.SP1"
{
"Name" = "8:.NET Framework 3.5 SP1"
"ProductCode" = "8:Microsoft.Net.Framework.3.5.SP1"
}
"{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:Microsoft.Windows.Installer.3.1"
{
"Name" = "8:Windows Installer 3.1"
"ProductCode" = "8:Microsoft.Windows.Installer.3.1"
}
}
"ComponentsUrl" = "8:"
"Items"
{
"{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:Microsoft.Net.Framework.3.5.SP1"
{
"Name" = "8:.NET Framework 3.5 SP1"
"ProductCode" = "8:Microsoft.Net.Framework.3.5.SP1"
}
"{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:Microsoft.Windows.Installer.3.1"
{
"Name" = "8:Windows Installer 3.1"
"ProductCode" = "8:Microsoft.Windows.Installer.3.1"
}
}
"LaunchCondition"
{
"{A06ECF26-33A3-4562-8140-9B0E340D4F24}:_799EF2A78D074B669D0B30310FD56A67"
{
"Name" = "8:.NET Framework"
"Message" = "8:[VSDNETMSG]"
"FrameworkVersion" = "8:.NETFramework,Version=v3.5"
"AllowLaterVersions" = "11:FALSE"
"InstallUrl" = "8:http://go.microsoft.com/fwlink/?LinkId=131000"
}
}
Da quando compongo sia un compilatore x86 che x64, ho due progetti di installazione. Il secondo, per il processore x86, non ottiene l'errore .NET. Ho confrontato il codice nel suo vdproj con questo, e sembra lo stesso.
Ho trovato diversi thread su questo problema, incluso uno molto buono here, ma nessuno di loro mi ha aiutato a risolvere questo problema. Qualsiasi suggerimento sarebbe utile.
EDIT
ho cambiato tutto per NET 4.0 solo per vedere se ha fatto la differenza, e il progetto costruito con successo. L'ho cambiato e mi ha restituito l'errore di versione .NET. Ho controllato il file vdproj per qualsiasi riferimento a "4.0" e l'ho trovato solo per AspNetVersion, che si è verificato anche nella versione x86 dell'installer che funziona.
"AspNetVersion" = "8:4.0.30319.0"
Ho bisogno di rilasciare con .NET 3.5, quindi questo è stato solo un esercizio per vedere se cambiare la versione a qualcos'altro e ritorno sarebbe risolvere il problema.
Non completamente correlato al problema, ma ho notato che si conservano più file di progetto per diverse piattaforme di destinazione. Dovresti verificarlo, potrebbe semplificarti la vita: http://stackoverflow.com/a/145970/81193 –
Ho avuto il mio progetto in precedenza, ma la DLL di C++ non si registrava correttamente e non potevo accedere esso. Per un capriccio, l'ho aggiunto al progetto e tutto ha funzionato come un incantesimo ... almeno fino a quando non è emerso questo problema. Grazie per il collegamento, però. – Tim