项目中不存在目标“_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] 目标(可以用记事本打开它:)) ,问题解决了
例如:<Target Name="_CopyBinDeployableAssemblies"></Target>
。只需要一个空目标:)
【讨论】:
【参考方案3】:取消部署项目并在<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>
【讨论】:
【参考方案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
我通过在损坏的项目文件中添加<Import>
元素解决了这个问题。
因此,如果您对上述目标有依赖,您可以通过在项目文件中查找以下<Import>
来查找:
<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 位版本。好吧,今天花了 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]。要