Ho riscontrato questo problema quando ho aggiornato il mio server Build per compilare utilizzando il nuovo compilatore roslyn (per utilizzare le funzionalità C# 6) e dopo aver installato required stuff (.NET Framework 4.6, Microsoft Build Tools 2015, .NET Framework 4.6 targeting Pack) Ho ricevuto un errore sulla mancanza C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\WebApplications\Microsoft.WebApplication.targets
quando ho provato a pubblicare il progetto ("Package"
destinazione Msbuild).
così ho aggiunto /p:VisualStudioVersion=12.0
parametro di comando MSBuild che la pubblicazione in modo che il bersaglio da C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\WebApplications\Microsoft.WebApplication.targets
sarebbe stata presa e poi ho avuto l'errore in questione (Web deployment task failed. (Unknown ProviderOption:DefiningProjectFullPath. Known ProviderOptions are:skipInvalid.)
)
Ho due soluzioni per questo problema:
- Copia
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\WebApplications\Microsoft.WebApplication.targets
dal computer locale per creare il server e rimuovere il parametro /p:VisualStudioVersion=12.0
dal comando di MSBuild argumens. Il nuovo MSBuild (che si trova a C:\Program Files (x86)\MSBuild\14.0\bin\amd64\MSBuild.exe'
) imposterebbe per impostazione predefinita VisualStudioVersion
come 14.0
e utilizzerà la nuova destinazione MSBuild che funziona con il nuovo compilatore.
- Se non si ha accesso alla creazione del server, installare il pacchetto MSBuild.Microsoft.VisualStudio.Web NuGet (è necessario installarlo su almeno un progetto in soluzione) e quindi rimuovere questo argomento del comando
/p:VisualStudioVersion=12.0
da MSBuild e aggiungere sotto il testo a.file di csproj di un progetto che non può essere pubblicato:
<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != '' And Exists('$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets')" />
<Import Project="..\..\packages\MSBuild.Microsoft.VisualStudio.Web.targets.14.0.0\tools\VSToolsPath\WebApplications\Microsoft.WebApplication.targets" Condition="('$(VSToolsPath)' == '' Or !Exists('$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets')) And Exists('..\..\packages\MSBuild.Microsoft.VisualStudio.Web.targets.14.0.0\tools\VSToolsPath\WebApplications\Microsoft.WebApplication.targets')" />
Ciò in primo luogo verificare se si dispone di Microsoft.WebApplication.targets
sul server di build (in ...VisualStudio\v14.0\
directory) e se non verranno importati quello dalla soluzione (incluso nel packages
directory)
Se non funzionerà controllare se si dispone di questo nel file csproj:
<PropertyGroup>
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
</PropertyGroup>
fonte
2016-01-28 15:43:29
Correlati: http://stackoverflow.com/questions/21849681/web- deployment-task-fallito-in-web-distribuzione –