22

Ho installato Visual Studio 2010 SP1 l'altro giorno e ora quando provo a "pubblicare" le mie app ottengo questo errore su TUTTI i miei progetti.L'obiettivo "_CopyBinDeployableAssemblies" non esiste nel progetto

The target "_CopyBinDeployableAssemblies" does not exist in the project. 

ho idea quale sia il problema è qui e non trovo nulla in tutti i potenti di Google e che mi fa un po 'nervoso.

Qualcuno può indicarmi la giusta direzione o forse qualcun altro ha lo stesso problema? Perché succede in tutti i miei progetti quindi sono un po 'stupito da solo con questo problema.

I siti sono applicazioni Web ASP.NET, alcuni di questi sono moduli Web/MVC misti, ma uno è solo Webform. 1 sito è super mega semplice con quasi nessun riferimento e ho ancora l'errore.

+0

Il service pack è ancora in beta. È possibile segnalare bug a connect.microsoft.com –

+0

Sì, lo so. Ho postato una risposta qui sotto quindi ora c'è qualche riferimento a questo problema su google almeno. – Olaj

+4

Abbiamo riscontrato lo stesso problema con la versione finale del Service Pack 1. –

risposta

44

Ho riscontrato questo problema anche dopo l'installazione di Visual Studio 2010 SP1 Beta.

L'obiettivo mancante _CopyBinDeployableAssemblies è definita:

$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets 

ho risolto il problema aggiungendo un elemento <Import> ai file di progetto rotti.

Quindi, se si dispone di un depdendency sugli obiettivi di cui sopra, che si può scoprire, cercando per il seguente <Import> nei file di progetto:

<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.targets" /> 

è necessario anche l'importazione:

<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" /> 
+6

Se (come noi) si esegue una combinazione di RTM e SP1b è possibile includere l'ultimo import con Condizione = "Esiste ('$ (MSBuildExtensionsPath) \ Microsoft \ VisualStudio \ v10.0 \ WebApplications \ Microsoft.WebApplication.targets')" che impedirà errori per quelli senza SP installato. – Ash

+0

Grazie a @Ragge e @Ash! –

+2

Quanto sopra è la soluzione giusta e quanto segue funzionerà sia per le versioni a 32 bit che a 64 bit. Elangesh

0

Bene, ho trascorso 4 ore su questo oggi e l'ho risolto ora. Ma sfortunatamente non ho una risposta precisa su quale fosse il problema. Buit descriverò quello che ho fatto.

  1. disinstallato SP 1 e ottenuto un paio di errori. Questi dove perché non avevo il supporto di installazione VS e dove chiederglielo.
  2. SP1 sembrava essere stato rimosso ma ho ancora ricevuto l'errore.
  3. Scaricare VS Ultimate Trial e ha provato a fare una riparazione, non ha aiutato.
  4. Scaricare nuovamente VS 2010 SP1 e installarlo. Ancora lo stesso problema.
  5. Disinstallato VS SP1 con accesso al supporto di installazione di VS Ultimate e ho ricevuto solo un errore in cui era necessario qualche roba di VS Express, ho premuto annulla su quello e ho detto che la disinstallazione non è riuscita.
  6. Avvia Visual Studio e il problema è andato! Hallelujah!

E beh, non incolpo di MS per questo. Lo sapevo dove una beta, ma non ho mai avuto problemi come questo prima.

Spero che questo risolva il problema per qualcun altro.

1

La risposta fornita da Ragge era ciò di cui avevo bisogno. Ma nel mio caso, ho solo aggiunto la seconda riga. La prima riga che Ragge ha dato era già nel file di progetto.

<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" /> 
4

Da joao-angelo s' blog post, aggiungere il seguente al file di progetto (.csproj/.vbproj)

<Target Name="Noop"></Target> 

<PropertyGroup> 
    <CollectFilesFrom_binDeployableAssembliesDependsOn> 
    Noop 
    </CollectFilesFrom_binDeployableAssembliesDependsOn> 
</PropertyGroup> 

prima di importare

<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.targets" /> 

che funziona per me usando ClickOnce su VS2010 SP1 utilizzando App.config transform

0

La risposta che Ragge ha dato ha funzionato anche per noi. Avevo una soluzione che non avevo aperto da quando l'installazione di SP1 si era appena rifiutata di creare con lo stesso errore. Modificato il file di progetto in Blocco note per includere queste due istruzioni e viola! problema risolto. Grazie mille per la tua diligenza!

Aggiunta: Un collega ha detto che l'aggiunta del importazione causerà costruisce accadendo al di fuori di Visual Studio per probabile lamentarsi (linea di comando msbuild, costruire server) perché Microsoft.WebApplication.targets non esiste là. Così abbiamo cambiato la linea di importazione per leggere:

<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="$(BuildingInsideVisualStudio) == true AND exists('$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets')" /> 

Queste condizioni sono state importanti per la nostra costruisce come facciamo tutti implementa utilizzando il server di build e msdeploy.

0

Undeploy il progetto e modificare e aggiungere seguente codice nel file di progetto alla fine del <Import>

<Target Name="_CopyBinDeployableAssemblies" 
     Condition="Exists('$(MSBuildProjectDirectory)\_bin_deployableAssemblies')"> 
    <CreateItem Include="$(MSBuildProjectDirectory)\_bin_deployableAssemblies\**\*.*" 
      Condition="Exists('$(MSBuildProjectDirectory)\_bin_deployableAssemblies')" 
      Exclude="$(MSBuildProjectDirectory)\_bin_deployableAssemblies\.svn\**\*"> 
     <Output ItemName="_binDeployableAssemblies" TaskParameter="Include" /> 
    </CreateItem> 
    <Copy SourceFiles="@(_binDeployableAssemblies)" 
      DestinationFolder="$(OutDir)\%(RecursiveDir)" SkipUnchangedFiles="true" 
      Retries="$(CopyRetryCount)" 
      RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)" /> 
</Target> 
1

Hoho, Jacob è giusto!

quando installiamo VS 2010 SP1 il default percorso MSBuild si concentrerà nella cartella

[C: \ Program Files (x86) \ MSBuild \ Microsoft \ VisualStudio \ v11.0]

non

[C: \ Programmi (x86) \ MSBuild \ Microsoft \ VisualStudio \ v10.0] altro.

E il file [Microsoft.WebApplication.targets] ha una destinazione di compilazione denominata [_CopyBinDeployableAssemblies].

Così abbiamo appena aggiungere una destinazione [_CopyBinDeployableAssemblies] al nostro file di progetto (può aprire con il Blocco note :)) , il problema è stato risolto

Es: <Target Name="_CopyBinDeployableAssemblies"></Target>. Ho solo bisogno di un target vuoto :)

0

È VS 2013 SP 3 e sto ancora avendo questo problema! Al fine di risolvere il problema ho dovuto cambiare la seguente riga nel non riuscire a costruire progetti da:

<Import Project="$(VSToolsPath)\Web\Microsoft.Web.Publishing.targets" Condition="'$(VSToolsPath)' != ''" /> 

alla seguente riga:

<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" /> 
Problemi correlati