1

我正在为 Visual Studio 编写一个插件,它为生产代码项目创建一个测试项目。它应该支持 C、C++ 和 C# 项目。对于 C/C++ 项目,我可以使用 VCPostBuildEventTool 以编程方式设置发布和预构建事件。

这就是我从 Project 对象中获取它的方式:

VCProject vcTestProj = (VCProject)testProj.Object;
IVCCollection testProjCfgs = (IVCCollection)vcTestProj.Configurations;
VCConfiguration testProjDebugCfg = (VCConfiguration)testProjCfgs.Item("Debug");
VCLinkerTool testProjLinkerTool = (VCLinkerTool)((IVCCollection)testProjDebugCfg.Tools).Item("VCLinkerTool");
VCCLCompilerTool testProjectCompileTool = (VCCLCompilerTool)((IVCCollection)testProjDebugCfg.Tools).Item("C/C++ Compiler Tool");
VCPreBuildEventTool testProjPreBuildTool = (VCPreBuildEventTool)((IVCCollection)testProjDebugCfg.Tools).Item("Pre-Build Event Tool");
VCPostBuildEventTool testProjPostBuildTool = (VCPostBuildEventTool)((IVCCollection)testProjDebugCfg.Tools).Item("Post-Build Event Tool");

但是 C# 项目不能用作 VCProject,而且我找不到以编程方式访问它的构建前和构建后事件的方法。无论如何要这样做?

4

1 回答 1

1

C#/VB.NET 项目被视为相同,因此它们是ProjectProperties3(或ProjectProperties2)接口的一部分,

http://msdn.microsoft.com/en-us/library/vslangproj2.projectproperties2.postbuildevent.aspx

中提到了如何达到该级别

http://msdn.microsoft.com/en-us/library/ms228958.aspx

于 2012-10-10T13:39:36.033 回答