1 つの Visual Studio 2010 ソリューションからすべての PDB ファイルを含む zip ファイルを作成するツールを作成しようとしています。
次のコードを使用して、ソリューション内のすべての PDB ファイルパスを取得できます。ただし、プロパティ値には、$(TargetDir)、$(TargetName) などの Visual Studio マクロが含まれています。
これらのマクロを現在の値に展開する関数は EnvDTE API にありますか?
一方、私の最初の目標を達成する他の方法も大歓迎です!
ありがとう
System.Type t = System.Type.GetTypeFromProgID("VisualStudio.DTE.10.0");
object obj = Activator.CreateInstance(t, true);
DTE dte = (DTE)obj;
Solution sln = dte.Solution;
sln.Open(args[0]);
while (sln.IsOpen == false)
{
System.Threading.Thread.Sleep(100);
}
sln.SolutionBuild.SolutionConfigurations.Item("Release").Activate();
foreach (EnvDTE.Project project in sln.Projects)
{
Console.WriteLine("Inspecting project {0}", project.Name);
VCProject vcproj = (VCProject)project.Object;
if (vcproj == null) // this is not a visual c++ project
continue;
IVCCollection cfgs = vcproj.Configurations;
VCConfiguration cfg = cfgs.Item(1);
VCLinkerTool tool = cfg.Tools("VCLinkerTool");
if (tool == null) // this is not a DLL/EXE project
continue;
Console.WriteLine("Program database = " + tool.ProgramDatabaseFile);
}