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)' != ''" /> 
相关问题