项目中不存在目标“_CopyBinDeployableAssemblies”

Posted

技术标签:

【中文标题】项目中不存在目标“_CopyBinDeployableAssemblies”【英文标题】:The target "_CopyBinDeployableAssemblies" does not exist in the project 【发布时间】:2011-06-08 13:12:53 【问题描述】:

前几天我安装了 Visual Studio 2010 SP1,现在当我尝试“发布”我的应用程序时,我的所有项目都出现此错误。

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

我不知道这里有什么问题,我在强大的谷歌上找不到任何东西,这让我有点紧张。

谁能在这里指出我正确的方向,或者其他人也有同样的问题?因为它发生在我所有的项目中,所以我对我一个人遇到这个问题感到有点惊讶。

这些站点是 ASP.NET Web 应用程序,其中一些是混合的 Web 表单/MVC,但一个只是 Web 表单。 1 个站点非常简单,几乎没有参考,但我仍然收到错误。

【问题讨论】:

Service Pack 仍处于测试阶段。您可以在 connect.microsoft.com 上报告错误 是的,我知道。我在下面发布了一个答案,所以现在至少在谷歌上有一些关于这个问题的参考。 我们在 Service Pack 1 的最终版本中遇到了同样的问题。 如果您在 Azure 上或在 Visual Studio 中发布,请参阅***.com/a/22055219/21574 【参考方案1】:

这是 VS 2013 SP 3,我仍然遇到这个问题! 为了解决这个问题,我不得不在未能从以下位置构建项目中更改以下行:

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

到以下行:

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

【讨论】:

【参考方案2】:

嗬嗬,雅各布是对的!

当我们安装 VS 2010 SP1 时,默认的 MSBuild 路径将聚焦到文件夹

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

不是

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

[Microsoft.WebApplication.targets] 文件有一个名为 [_CopyBinDeployableAssemblies] 的构建目标。

所以我们只需在我们的项目文件中添加一个 [_CopyBinDeployableAssemblies] 目标(可以用记事本打开它:)) ,问题解决了

例如:&lt;Target Name="_CopyBinDeployableAssemblies"&gt;&lt;/Target&gt;。只需要一个空目标:)

【讨论】:

【参考方案3】:

取消部署项目并在&lt;Import&gt;末尾的项目文件中编辑并添加以下代码

<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> 

【讨论】:

【参考方案4】:

从joao-angelo的blog post,将以下内容添加到项目文件(.csproj/.vbproj)

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

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

导入前

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

这适用于我在 VS2010 SP1 上使用 ClickOnce 使用 App.config transform

【讨论】:

【参考方案5】:

拉格给出的答案也对我们有用。我有一个自 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 进行所有部署。

【讨论】:

【参考方案6】:

Ragge 上面给出的答案正是我所需要的。但就我而言,我只添加了第二行。 Ragge 给出的第一行已经在项目文件中。

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

【讨论】:

【参考方案7】:

我在安装 Visual Studio 2010 SP1 Beta 后也遇​​到了这个问题。

缺少的目标_CopyBinDeployableAssemblies 定义在:

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

我通过在损坏的项目文件中添加&lt;Import&gt; 元素解决了这个问题。

因此,如果您对上述目标有依赖,您可以通过在项目文件中查找以下&lt;Import&gt; 来查找:

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

你还需要导入:

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

【讨论】:

如果(像我们一样)您正在运行 RTM 和 SP1b 的混合,您可以在最后一次导入中包含 Condition="Exists('$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\WebApplications \Microsoft.WebApplication.targets')" 这将防止未安装 SP 的用户出错。 以上是正确的解决方案,以下适用于 32 位和 64 位版本。 +1,在 SP1 的最终版本中遇到了同样的问题,添加新的导入修复了它。但是,在删除旧导入之前,我收到了警告,所以我猜如果您只使用 SP1,最好的解决方案是替换导入而不是添加新导入。 CopyBinDeployableAssemblies 在我的 Microsoft.WebApplication.targets 文件中是 not。添加它的先决条件是什么?我安装了 SP1(生产)。 像这样使用 Visual Studio 版本路径(是的,我什至在 2018 年使用 VS2017ENT 时遇到此错误):$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\WebApplications\Microsoft.WebApplication.目标【参考方案8】:

好吧,今天花了 4 小时解决了这个问题。但不幸的是,我没有明确的答案是什么问题。但我会描述我做了什么。

    已卸载 SP 1 并出现一些错误。这些在哪里,因为我没有 VS 安装媒体,它在哪里要求它。 SP1 似乎已被删除,但我仍然收到错误消息。 已下载 VS Ultimate 试用版并尝试进行修复,但没有帮助。 再次下载VS 2010 SP1并安装。还是一样的问题。 卸载 VS SP1 并访问 VS Ultimate 安装媒体,我只收到一个错误,它需要一些 VS Express 的东西,我按下取消,它说卸载失败。 启动了 Visual Studio,问题就消失了!哈利路亚!

好吧,我一点也不怪 MS。我知道它在哪里是测试版,但我以前从未遇到过这样的问题。

希望这可以解决其他人的问题。

【讨论】:

以上是关于项目中不存在目标“_CopyBinDeployableAssemblies”的主要内容,如果未能解决你的问题,请参考以下文章

项目中不存在目标“_CopyBinDeployableAssemblies”

引用 netstandard 库时,项目中不存在目标“GetBuiltProjectOutputRecursive”

Jetbrains Rider:[MSB4057] 项目中不存在目标“构建”

从 Gradle 运行 Android 的 build.xml 时,项目“LibA”中不存在目标“$build.target”

Apache Cordova vs2013 新建项目生成报错 不存在目标“CompileTypescript”

2021-09-21:给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回 [-1, -1]。要