c++ - 如何在 Visual Studio 中的干净构建期间删除 dlldata.c?

标签 c++ visual-studio com build

我将创建一系列旨在构建 COM 对象的项目。我试图创建一个属性表(.vsprops 文件),它将为每个项目设置构建。我对属性文件所做的其中一件事是自定义 MIDL 编译器创建的文件的位置和名称。这是我为此使用的代码:

<Tool
    Name="VCMIDLTool"
    TypeLibraryName="$(InputName).tlb"
    OutputDirectory="$(RPCDIR)"
    HeaderFileName="$(InputName).h"
    DLLDataFileName="$(InputName)_dlldata.c"
    InterfaceIdentifierFileName="$(InputName)_i.c"
    ProxyFileName="$(InputName)_p.c"
/>

RPCDIR 是在属性文件的这一部分之前定义的宏。这非常适合编译代码。当我构建我的项目时,这五个文件以正确的名称创建在我在 RPCDIR 宏中指定的位置。我的问题是当我尝试清理构建时。 clean 成功删除了其中四个文件,但 DLL 数据文件没有被删除。我特别困惑的是有些被删除了,一个没有 - 我本以为要么全部删除,要么一个都不删除,而不是像这样拆分。

有谁知道我如何自定义清理版本以正确删除这些文件?最佳情况下,我需要进行的任何更改都将在属性表​​中进行,以便我可以与其他项目共享它,但如果这不可能,那么我希望至少能够在项目文件中进行。提前感谢您提供的任何帮助!

最佳答案

不是你的问题,这是构建系统中的错误。使用常规构建也不会删除 dlldata.c 文件。 msbuild .log 文件中没有足够的可用诊断来查看是什么目标搞砸了这个。我猜它与 <FilePatternsToDelete> 有关Microsoft.CppClean.targets 文件中的项目。

我建议您在 connect.microsoft.com 上报告此问题

关于c++ - 如何在 Visual Studio 中的干净构建期间删除 dlldata.c?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3321169/

相关文章:

visual-studio - csproj 文件 Visual Studio 中的重复文件

visual-studio - Visual Studio for mac 始终需要下载 Mono 框架

c# - 如何将 .tlb 作为资源文件嵌入到 .NET 程序集 DLL 中?

c - IFileOperation::DeleteItem 在系统目录 .Local 中不起作用

c++ - 如何防止程序违反单例模式

c++ - 在 OpenGL 中绘制像素

visual-studio - Visual Studio - 找不到页面

c# - 如何调用 tlbexp 命令作为构建后事件以从 Visual Studio 2019 IDE 中的 C# EXE 导出类型库?

c++ - 3 Function plus Main Function C 程序计算和显示阶乘

c++ - 如何避免重复的 const 和非常量虚函数?是否可以?