Цель "_CopyBinDeployableAssemblies" не существует в проекте - PullRequest
25 голосов
/ 13 января 2011

Я установил Visual Studio 2010 SP1 на днях, и теперь, когда я пытаюсь «опубликовать» свои приложения, я получаю эту ошибку во ВСЕХ моих проектах.

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

Я понятия не имею, в чем здесь проблема, и я ничего не нахожу во всем могущественном Google, и это меня немного нервирует.

Может кто-нибудь указать мне правильное направление здесь, или, может быть, у кого-то еще есть такая же проблема? Потому что это происходит во всех моих проектах, поэтому я немного удивлен тем, что остался один на один с этой проблемой.

Сайты являются веб-приложениями ASP.NET, некоторые из них представляют собой смешанные веб-формы / MVC, а один - только веб-формы. 1 сайт очень мега простой, почти без ссылок, и я все еще получаю ошибку.

Ответы [ 8 ]

46 голосов
/ 28 января 2011

Я также столкнулся с этой проблемой после установки 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" />
4 голосов
/ 15 августа 2011

Из joao-angelo в блоге , добавьте следующее в файл проекта (.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" />

Это работает для меня, используя ClickOnce на VS2010 SP1 используя App.config transform

3 голосов
/ 30 июля 2013

Хохо, Джейкоб прав!

Когда мы устанавливаем VS 2010 с пакетом обновления 1 (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>. Просто нужна пустая цель:)

1 голос
/ 01 октября 2014

Это VS 2013 SP 3, и у меня все еще есть эта проблема!Чтобы исправить это, мне пришлось изменить следующую строку в случае невозможности сборки проектов с:

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

на следующую строку:

<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
1 голос
/ 09 августа 2011

Ответ, данный Рагге выше, был тем, что мне было нужно.Но в моем случае я добавил только вторую строку.Первая строка, которую дал Ragge, уже была в файле проекта.

<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />
0 голосов
/ 06 марта 2013

Отмените развертывание проекта, отредактируйте и добавьте следующий код в файл проекта в конце <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> 
0 голосов
/ 04 мая 2012

Ответ, который дал Рагге, сработал и для нас. У меня было решение, которое я не открывал после установки 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 голосов
/ 14 января 2011

Хорошо, я потратил 4 часа на это сегодня, и я решил это сейчас. Но, к сожалению, у меня нет однозначного ответа, в чем проблема. Но я опишу, что я сделал.

  1. Деинсталлировал SP 1 и получил пару ошибок. Это где, потому что у меня не было установочного носителя VS, и это где просил.
  2. SP1, казалось, был удален, но я все еще получил ошибку.
  3. Скачал VS Ultimate Trial и попытался сделать ремонт, не помогло.
  4. Снова загрузил VS 2010 SP1 и установил его. Все та же проблема.
  5. Деинсталлировано VS SP1 с доступом к установочному носителю VS Ultimate, и я получил только одну ошибку, когда ему потребовались некоторые вещи VS Express, я нажал кнопку отмены на этом, и он сказал, что удаление не удалось.
  6. Запустил Visual Studio и проблема исчезла! Аллилуйя!

И я вообще не виню в этом М.С. Я знал, что это бета-версия, но у меня никогда не было подобных проблем.

Надеюсь, это решит проблему для кого-то еще.

...