Как изменить расположение по умолчанию для WebProjectOutputDir? - PullRequest
8 голосов
/ 26 февраля 2010

Кто-нибудь знает, для каждого проекта, можно ли установить WebProjectOutputDir в Visual Studio. Я хочу, чтобы он был таким, чтобы при нажатии Ctrl + Shift + B он автоматически создавал мой веб-проект в определенную директорию, но я также нужно иметь возможность переопределить это в моем скрипте сборки.

Ответы [ 2 ]

16 голосов
/ 02 марта 2010

Это излишне неловко , чтобы правильно сделать это на основе способа, которым Microsoft.WebApplications.targets определяет цель _CopyWebApplication и как Microsoft.Common.targets обрабатывает OutDir и OutputPath свойства.

Если вы хотите изменить это в самом файле проекта, вам следует:

  • Объявите свойство WebProjectOutputDir после импорта в Microsoft.WebApplications.targets
  • Объявите свойство OutDir до импорта в Microsoft.WebApplications.targets

Есть несколько причин, почему вы должны это сделать.

Microsoft.WebApplications.targets переопределит любое объявление WebProjectOutputDir, если оно было объявлено перед оператором импорта. Поэтому оно должно прийти после.

Также внутри Microsoft.WebApplications.targets _CopyWebApplication определяется следующим образом:

<Target Name="_CopyWebApplication" Condition="'$(OutDir)' != '$(OutputPath)'" >
  ....
</Target>

Взглянув на условие, вы увидите, что цель не будет выполнена, если OutDir и OutputPath равны одному значению. Вы не можете просто изменить OutputPath, потому что OutDir основан на OutputPath, поэтому вы должны изменить OutDir и убедиться, что это перед импортом в этот файл, потому что другие свойства построены на основе этого свойства.

Менее чем идеально, но, надеюсь, это поможет вам.

4 голосов
/ 10 марта 2018

Я столкнулся с этим при использовании Visual Studio для Mac , компиляции проекта Umbraco . Построение выдаст следующую ошибку:

Ошибка MSB4044: задаче «KillProcess» не было присвоено значение для обязательный параметр «ImagePath»

Возвращалось пустое значение для WebProjectOutputDir при компиляции Rosyln и т. Д. Эти элементы компилировались только веб-проектом в решении, поэтому я вручную отредактировал файл csproj веб-проекта и добавил следующее в глобальный в верхней части файла:

    ...
    <WebProjectOutputDir>.\</WebProjectOutputDir>
</PropertyGroup>

Проблема решена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...