Как я могу создать общее событие пост-сборки, используемое несколькими проектами csproj - PullRequest
5 голосов
/ 02 марта 2011

У меня есть несколько проектов Visual Studio 2010 C #. Я бы хотел, чтобы у всех них было одно и то же событие после сборки По сути, я хочу, чтобы они скопировали свой вывод куда-нибудь. Я думаю, что могу сделать это, используя оператор в каждом файле csproj, но я не могу понять свойства / цели и такие, которые мне нужны в импортированном файле. Есть ли у вас какие-либо предложения?

РЕДАКТИРОВАТЬ: я пробовал следующее, но не могу заставить его работать. Вот как выглядит файл Imports.props:

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <Target Name="AfterBuild">
        <Message Text="Here I come to save the day!" />
    </Target>
</Project>

Затем я включаю его в файлы csproj:

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <Import Project="Imports.props" />
    ...

Я также пробовал это как Imports.props:

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <PropertyGroup>
        <PostBuildEvent>echo Here I come to save the day!</PostBuildEvent>
    </PropertyGroup>
</Project>

Ответы [ 3 ]

4 голосов
/ 02 марта 2011

Убедитесь, что вы импортировали файл целей после импорта Microsoft.Common.targets, так как этот файл определяет пустую цель AfterBuild, которая переопределяет определение в файле ваших целей.

1 голос
/ 02 марта 2011

<import> в каждом файле проекта и цель <AfterBuild> в вашем общем файле сборки.

CommonTargets http://msdn.microsoft.com/en-us/library/ms171464.aspx

TargetOrder http://msdn.microsoft.com/en-us/library/ms171462.aspx

0 голосов
/ 15 июля 2013

Мне удалось поделиться сценарием сборки через листы свойств, написав его в виде макроса на листе наследуемых свойств. Затем вызывая макрос в любом из проектов, в котором они нуждаются.

Макросы находятся в (VS2005): Общие свойства-> Макросы пользователя

Помните, что вы можете помещать макросы в другие макросы, если порядок правильный.

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