Visual Studio — C ++ Windows Driver MSB3030 не удалось скопировать файл «», потому что он не был найден

Проект VS2017, SDK / WDK, C ++

у нас есть решение (драйвер) для c ++, которое совместно используется разработчиками через Team Foundation Services — visualstudio.com (теперь называется azure devops?).

Когда я получаю последний исходный код и хочу перестроить решение, я получаю две ошибки MSB3030:
«Не удалось скопировать файл« C: \ path моего коллеги в его файл », поскольку он не был найден».

Мне показалось странным, что я увидел на одной из двух ошибок путь моего коллеги к его компьютеру. Он работает на C: \ Я работаю на E: \

Разгружая проект, я увидел, что он указывает путь:

<ItemGroup>
<FilesToPackage Include="C:\path of my colleague\foo.xml" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<PackageRelativeDirectory>
</PackageRelativeDirectory>
</FilesToPackage>

Мы не можем получить это решение построить из-за MSB3030. Сначала мы должны очистить отдельные проекты по отдельности, перестроить его, затем построить другой проект и т. Д. Несколько шагов, чтобы выполнить вручную в правильном порядке, методом проб и ошибок, пить кофе, бросать бананы на компьютер и молиться, чтобы обезьяна выводила код правильно.

Кто-нибудь видел что-нибудь подобное в отношении ошибок MSB3030?
На моем компьютере я вижу путь моего коллеги, но он не видит мой путь (странно!).

C: \ Program Files (x86) \ Windows
Наборы \ 10 \ build \ WindowsDriver.common.targets (1699,5): ошибка MSB3030:
Не удалось скопировать файл «C: …», потому что он не был найден.

Я установил Any CPU на x64, потому что это не имеет никакого смысла для c ++.

0

Решение

C ++ Windows Driver MSB3030 не удалось скопировать файл «», потому что он не был найден

Причиной этой проблемы является то, что путь ItemGroup абсолютный путь в файле проекта:

<ItemGroup>
<FilesToPackage Include="C:\path of my colleague\foo.xml" ...>
...
</FilesToPackage>
</ItemGroup>

Независимо от того, добавил ли ваш коллега этот файл в систему контроля версий, когда вы переносите код с TFS-сервера на локальный и помещаете код в другую локальную папку, абсолютный путь доставит вам много хлопот, вам нужно вручную проверьте код на TFS-сервере для этого файла, и вам нужно изменить абсолютный путь к этому файлу в вашем проекте. Но эта проблема появится снова после обновления вашего коллеги после того, как вы отправите свой код. Так как абсолютный путь не может быть назначен двум разным путям C:\ а также E:\,

Чтобы решить эту проблему, вам нужно изменить абсолютный путь на относительный путь в исходном коде. Обычно мы предпочитаем добавить этот файл в папку Solution / Project, а затем использовать макросы MSBuild. $(SolutionDir)/$(ProjectDir) указать это.

Проверьте Общие макросы для команд и свойств сборки для более подробной информации.

Надеюсь это поможет.

0

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

Других решений пока нет …

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