2015-08-20 2 views
0

У меня есть сайт MVC, что я публикую с помощью командной строки, используя аргументыMSBuild deployonbuild пытается опубликовать другой проект

msbuild.exe /p:DeployOnBuild=true /p:PublishProfile=Test MyProject.csproj 

Проект MyProject имеет ссылку на другой проект веб-приложения MyReferencedProject. Это используется для хранения общих просмотров Razor и другого общего кода на другом веб-сайте. (Создание типа проекта в качестве веб-приложения было рекомендовано RazorGenerator, поэтому я получаю intellisense при работе с представлениями Razor). Этот проект работает как библиотека классов и никогда не должен публиковаться.

Вопрос заключается в том, что, когда я запускаю команду выше, я получаю ошибку, что не может найти Test.pubxml для MyReferencedProject:

C: \ Program Files (x86) \ MSBuild \ Microsoft \ VisualStudio \ v14.0 \ Web \ Microsoft.Web.Publishing.targets (4352,5): ошибка: значение для PublishProfile установлено в 'Test', ожидается, что файл будет найден в 'C: \ Projects \ MyReferencedProject \ Properties \ PublishProfiles \ Test.pubxml ', но его не удалось найти.

Как я могу запустить MSBuild опубликовать MyProject без него также пытается опубликовать MyReferencedProject?

Я нашел, что могу решить проблему, добавив профиль публикации Test для этого проекта, но это означает, что я должен настроить место для размещения кода, когда оно опубликовано, что действительно не должно генерироваться вообще.

ответ

1

Попробуйте изменить командную строку:

msbuild.exe /p:DeployMyProject=true /p:PublishProfile=Test MyProject.csproj

Затем добавьте следующую группу свойств в MyProject.csproj перед любыми Import заявления:

<PropertyGroup> 
    <DeployOnBuild Condition="'$(DeployMyProject)'!=''">$(DeployMyProject)</DeployOnBuild> 
</PropertyGroup> 

Это решение основано на: How to publish one web project from a solution.

Смежные вопросы