2010-07-23 28 views
1

我將創建一系列建立COM對象的項目。我試圖創建一個屬性表(.vsprops文件),它將爲每個項目設置構建。我對屬性文件所做的一件事是自定義由MIDL編譯器創建的文件的位置和名稱。以下是我用於此的代碼:如何在Visual Studio中清理生成期間刪除dlldata.c?

<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宏指定的位置創建正確的名稱。我的問題是當我嘗試清理構建。清理成功刪除四個文件,但DLL數據文件不會被刪除。我特別困惑的是,一些被刪除,一個不是 - 我會想,要麼他們都將被刪除或不被刪除,而不是像這樣的分裂。

有誰知道我可以如何定製清潔版本以正確刪除這些文件?理想的情況下,我需要做的任何修改都會放在屬性表中,以便我可以將其與其他項目共享,但如果這不可行,那麼我希望至少能夠在項目文件中完成。預先感謝您提供的任何幫助!

+0

我知道這是多大年紀,但是。 。 。 。它可能與編譯多個midl文件時dlldata複雜的事實有關? mb個?我試圖找出適當的方法atm ..。 。 – 2011-08-07 16:29:20

回答

0

不是你的問題,它是構建系統中的一個錯誤。使用常規構建也不會刪除dlldata.c文件。 msbuild .log文件中沒有足夠的診斷來查看目標是什麼。我猜測它與Microsoft.CppClean.targets文件中的<FilePatternsToDelete>項目有關。

我推薦你在connect.microsoft.com報告這個問題

+0

我按照建議在connect.microsoft.com上提交了反饋,但不幸的是,他們不再接受Visual Studio 2005的反饋。看起來我必須忍受這一點,或者創建一個解決方法,直到我們能夠將代碼庫升級到Visual Studio 2010. – Brian 2010-07-26 14:33:14

+0

我在談論VS2010。 – 2010-07-26 14:35:39

相關問題