22

我前幾天安裝了Visual Studio 2010 SP1,現在當我嘗試「發佈」我的應用程序時,我在我的所有項目中都收到了此錯誤。項目中不存在目標「_CopyBinDeployableAssemblies」

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

我不知道這個問題在這裏,我發現沒有什麼強大的谷歌,這讓我有點緊張。

任何人都可以在這裏指出我正確的方向,或者也許別人有同樣的問題?因爲它發生在我所有的項目中,所以我對這個問題感到很驚訝。

這些網站是ASP.NET Web應用程序,其中一些是混合的Web表單/ MVC,但只有一個是Webforms。 1網站是超級巨型簡單,幾乎沒有參考,我仍然得到錯誤。

+0

服務包是仍處於測試階段。你可以在connect.microsoft.com上報告錯誤 – 2011-01-13 16:07:13

+0

是的,我知道。我在下面發佈了一個答案,所以現在在google上至少有一些對這個問題的引用。 – Olaj 2011-01-14 14:44:54

回答

44

安裝Visual Studio 2010 SP1 Beta後,我也遇到過這個問題。

丟失的目標_CopyBinDeployableAssemblies被定義爲:

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

我通過添加<Import>元素給破了項目文件解決了這個問題。

所以,如果你有以上的目標,一個depdendency您可以通過尋找在您的項目文件中的以下<Import>發現:

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

您還需要進口:

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

那麼,今天花了4小時,我現在解決了。但不幸的是,我並沒有明確的答案是什麼問題。 Buit我會描述我做了什麼。

  1. 卸載SP 1並且出現了一些錯誤。這些地方,因爲我沒有VS安裝媒體,它在哪裏要求它。
  2. SP1似乎已被刪除,但我仍然有錯誤。
  3. 下載VS終極試用,並試圖做一個修復,沒有幫助。
  4. 再次下載VS 2010 SP1並安裝它。仍然是同樣的問題。
  5. 卸載VS SP1訪問VS Ultimate安裝媒體,我只有一個錯誤,它需要一些VS Express的東西,我按下取消,它說卸載失敗。
  6. 推出Visual Studio和問題去了!哈利路亞!

嗯,我完全沒有責怪MS。我知道它在哪裏,但我從來沒有像這樣的問題。

希望這可以解決別人的問題。

1

Ragge給出的答案是我需要的。但就我而言,我只添加了第二行。 Ragge給出的第一行已經在項目文件中。

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

joao-angeloblog post,進口

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

那我就用ClickOnce的工作之前,添加以下的項目文件(.csproj/.vbproj)

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

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

VS2010 SP1使用App.config transform

0

答案Ragge也給我們工作。我有一個解決方案,我從SP1安裝以來就沒有打開過,只是拒絕構建相同的錯誤。在記事本中編輯項目文件以包含這兩個聲明和中提琴!問題解決了。非常感謝您的勤奮!

此外:一位同事提到,添加導入會導致在Visual Studio之外發生的構建可能發生抱怨(命令行msbuild,構建服務器),因爲Microsoft.WebApplication.targets在那裏不存在。所以我們改變了進口一行改爲:

<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')" /> 

這些條件對我們的基礎,因爲我們做的使用構建服務器和msdeploy全部展開時很重要的。

0

取消部署項目和編輯,並在項目文件在<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末尾添加以下代碼,雅各布是正確的!

當我們安裝VS 2010 SP1默認的MSBuild路徑將集中到文件夾

[C:\ Program Files文件(x86)的\的MSBuild \微軟\ VisualStudio的\ 11.0]

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

並且[Microsoft.WebApplication.targets]文件具有名爲[_CopyBinDeployableAssemblies]的構建目標。

所以我們只需添加[_CopyBinDeployableAssemblies]目標到我們的項目文件(可以用記事本打開它:)) ,問題解決了

例如:<Target Name="_CopyBinDeployableAssemblies"></Target>。只需要一個空目標:)

0

這是VS 2013 SP 3,我仍然有這個問題! 爲了解決這個問題,我不得不更改失敗以下行從建設項目:

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

以下行:

<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" /> 
相關問題