C++ Windows 驱动程序MSB3030无法复制该文件,因为它找不到

C++ Windows Driver MSB3030 could not copy the file '' because it was not found

本文关键字:文件 因为 找不到 复制 驱动程序 Windows MSB3030 C++      更新时间:2023-10-16

VS2017,SDK/WDK,C++项目

我们有一个c++解决方案(驱动程序(,通过TeamFoundationServices-visualstudio.com(现在称为azure-devops?(在开发人员之间共享。

当我执行获取最新源代码并希望重新生成解决方案时,我收到两个MSB3030错误:无法复制文件"C:\path of my colleger his file",因为找不到它。

我发现很奇怪,我在两个错误中的一个错误上看到了我同事他的电脑的路径。他在C:\上工作,我在E:\上工作

卸载项目时,我看到他的路径设置在这里:

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

由于MSB3030,我们无法生成此解决方案。首先,我们必须单独清理特定的项目,重建它,然后构建另一个项目等。按照正确的顺序手动执行几个步骤,反复尝试,喝咖啡,向电脑扔香蕉,祈祷猴子正确输出代码。

有人看到过类似的MSB3030错误吗?在我的电脑上,我看到了我同事的路径,但他看不到我的路径(奇怪!(。

C:\Program Files(x86(\WindowsKits\10\build\WindowsDriver.common.targets(1699,5(:错误MSB3030:无法复制文件"C:…"因为没有找到。

我已经将Any CPU设置为x64,因为它对c++没有任何意义。

C++Windows驱动程序MSB3030未能复制文件",因为找不到

此问题的原因是ItemGroup的路径是项目文件中的绝对路径:

<ItemGroup>
<FilesToPackage Include="C:path of my colleaguefoo.xml" ...>
...
</FilesToPackage>
</ItemGroup>

无论您的同事是否已将此文件添加到源代码管理,当您将代码从TFS服务器拉到本地并将代码放在不同的本地文件夹中时,绝对路径都会给您带来很多麻烦,您需要手动检查TFS服务器上的代码以查找此文件,并且需要在项目中修改此文件的绝对路径。但是,在您提交代码后,您的同事更新后,此问题将再次出现。因为绝对路径不能分配给两个不同的路径C:E:

要解决此问题,您需要在源代码中将绝对路径更改为相对路径。通常,我们倾向于将此文件添加到Solution/Project文件夹,然后使用MSBuild宏$(SolutionDir)/$(ProjectDir)来指定它。

有关更多详细信息,请查看生成命令和属性的通用宏。

希望这能有所帮助。