5

ソースツリーを検査して.vcprojおよび.csprojプロジェクト(VS2005)を探すツールを書いています。各プロジェクトがアプリケーションなのか、DLLなのか、静的なlibプロジェクトなのかを知りたい。

C#の場合、この質問には答えがあると思います(VisualStudioプロジェクトタイプと既存のVisualStudioプロジェクトをどのように区別しますか)が、C++プロジェクトで明らかな類似点を見つけることができません。可能であれば、テキスト内の単純な検索用語として使用できるものが好きです。

4

1 に答える 1

5

.vcprojファイルの「ConfigurationType」属性を解析する必要があります。要素の属性<VisualStudioProject><Configurations><Configuration>。DLLプロジェクトの場合は「2」、静的ライブラリプロジェクトの場合は「4」です。これは非常に珍しいことですが、構成が異なれば、この属性の値も異なる可能性があることに注意してください。

一般に、.vcprojファイルのコピーを作成し、プロジェクト+プロパティページで変更を加え、ファイル+ SaveAllを使用して、2つの.vcprojファイルを比較し、何が変更されたかを確認することで、これらをリバースエンジニアリングします。

このような古いバージョンのVisualStudioに多大な労力を費やすことに少し注意してください。ソフトウェアエンジニアリングでは、特にC ++ 11標準がリリースされてから、8年は非常に長い時間です。C ++プロジェクトのファイル形式はVS2010で劇的に変更され、MSBuildを介したビルドをサポートすることでVSの残りの言語に結合された.vcxprojファイルになりました。いつかVSバージョンをアップグレードするときは、これらすべてをやり直す必要があります。後でツールに依存するようになったときにそれを行うのは簡単ではないので、今すぐそれを行う方が良いでしょう。

于 2013-01-16T15:53:32.517 に答える