Убедитесь, что проект C ++ собирается до проекта .NET с помощью msbuild

У меня есть неуправляемый проект C ++, вывод которого мне нужно скопировать в папку вывода проекта .NET.

Visual Studio 2010 не позволяет мне добавлять проект C ++ в качестве ссылки на проект, поскольку он не создает управляемую сборку.

Я попытался добавить следующее в файл .csproj вручную, но, похоже, он не работает (например, при запуске msbuild, сначала создается проект .NET)

<ItemGroup>
<ProjectReference Include="pathtoproject\unmanaged.vcxproj">
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
<Private>False</Private>
</ProjectReference>
</ItemGroup>

Как я могу применить эту зависимость сборки для работы со сборкой из командной строки?

0

Решение

Так что получается, что пример, который я привел в вопросе, на самом деле правильный. Это приведет к тому, что проект C ++ будет собран первым.

Моя проблема заключалась в том, что я пытался подключиться к целям MSBuild в проекте .NET, чтобы затем скопировать DLL C ++, и я делал это слишком рано в цикле сборки для этого проекта (я подключался к BeforeBuild). Вместо этого использование цели ‘BeforeCompile’ кажется достаточно запоздалым в цикле сборки, чтобы она работала должным образом.

2

Другие решения

Добавьте оба проекта в решение и используйте зависимости проекта, чтобы сначала был создан неуправляемый проект. Вы можете построить решение из командной строки.

Диалог зависимостей проекта

1

Я думаю, что ваш вопрос, возможно, был дан ответ в этой теме:

Как добавить ссылку на неуправляемый проект C ++, вызываемый проектом C #?

Посмотрите на ответ SLaks

0
По вопросам рекламы [email protected]