2010-11-08 5 views
2

У меня есть проект C++ в VS2010 и проект C#, который должен использовать этот проект проекта C++ (он использует его для p/invoke). Я думал, что могу гарантировать, что проект C++ был создан до проекта C#, редактируя «зависимостей проекта ...» в решении, но это, похоже, не имеет никакого эффекта, сборка на моем сервере сборки не учитывает этот параметр (Я использую TeamCity для загрузки файла MSBuild, который создает весь файл решения)VS2010 зависимостей проекта

Я думаю, что это работало, что-то изменилось с VS2010? Или я должен заявлять зависимость по-другому?

РЕШЕНИЕ: Хитрость в том, чтобы вручную редактировать файл csproj вне VS2010 и добавить раздел как это:

<ProjectReference Include="..\CobraLib\CobraLib.vcxproj"> 
    <Project>{598506DA-91DA-4F25-948D-A14CB16ABEBA}</Project> 
    <Name>CobraLib</Name> 
    <ReferenceOutputAssembly>false</ReferenceOutputAssembly> 
</ProjectReference> 

Это сделало процесс создания сервера мои проекты в правильном порядке. Только оговорка заключается в том, что VS2010 отображает ошибку в ссылке на проект («не проект .NET»), но в противном случае все работает так, как я предполагал.

ответ

1

Как вы добавляете зависимость? через VS2010 или редактирование какого-либо файла?

+0

Я изначально использую диалог VS2010, и я подтвердил, что файл решения содержит параметры postProject. –

+0

Проверьте файл проекта проекта C#, он должен иметь элемент , определяющий проект C++ как зависимость. Вы также можете попробовать увеличить объемность msbuild в TeamCity и посмотреть журналы, которые могут дать вам представление о том, что происходит. Я предполагаю, что это работает на вашей локальной машине. – radical

+0

Должен ли я редактировать это вручную? Я не могу добавить его с помощью VS2010 (возможно, у меня установлено расширение AddReference, которое запрещает это). Я хотел бы, чтобы результат проекта C++ заканчивался вместе с выходом файла C#. –

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