2009-04-22 16 views
2

これは、いくつかの時間前にMSDNフォーラムに投稿し、この日に未回答滞在された質問は次のとおりです。Visual Studioの拡張性(アドイン):Silverlight関連のプロパティにアクセスする方法?

http://social.msdn.microsoft.com/Forums/en-US/vsx/thread/676b13d4-acfc-4252-b102-5fc0553e4b81/

私が興味プロパティは、Visual Studioソリューションに保存されているProjOutputReferences、(あります.sln)ファイル。

Visual Studioでは、このプロパティはSilverlight WebSiteプロジェクトの[プロパティページ]ダイアログからアクセスできます(VS2008用のSilverlightツールがインストールされている必要があります)。そこには、上記のプロパティの内容を編集できる「Silverlightアプリケーション」というページがあります。

私はアドイン内で、VSオートメーションまたは低レベルのインターフェイスを通じてプログラムにアクセスする必要があります。

答えて

4

VS 2008 SP1用のSilverlightツールの最新リリース版では、参照プロジェクトファイルのSilverlightApplicationListプロパティにリストが保持されます。 たとえば、私は私のソリューションにSilverlightApplication2とSilverlightApplication2.Webを持っています(前者は前者を参照しています)。本当にそこ

<SilverlightApplicationList>{BBA7B148-42AE-477E-BB5E-0BA5AEC0A467}|..\SilverlightApplication2\SilverlightApplication2.csproj|ClientBin|False</SilverlightApplicationList> 

純粋にDTEを経由してこのプロパティにアクセスする方法はありませんが、そうするのVisual Studio SDK/VSIPインタフェースを使用することができます。私は私のSilverlightApplication2.Web.csprojファイルに次のノードを持っています(具体的には、MSBuildプロパティにアクセスするためのIVsBuildPropertyStorageインターフェイスを取得する)。ここでは、コードスニペット(VSPackageのメニューコマンドハンドラで実行されます)は、次のとおりです。

IVsSolution solution = GetService(typeof(SVsSolution)) as IVsSolution; 

IVsHierarchy hierarchy; 
solution.GetProjectOfUniqueName(@"SilverlightApplication2.Web\SilverlightApplication2.Web.csproj", out hierarchy); 

IVsBuildPropertyStorage buildPropertyStorage = hierarchy as IVsBuildPropertyStorage; 

if (buildPropertyStorage != null) 
{ 
    string silverlightAppListValue; 
    buildPropertyStorage.GetPropertyValue("SilverlightApplicationList", "Debug", (uint)_PersistStorageType.PST_PROJECT_FILE, out silverlightAppListValue); 

    MessageBox.Show(silverlightAppListValue); 
} 

それでもアドインからこれをやってみたい場合は、あなたがCraig mentionsをキャストするというアプローチに従うを取得する必要がありますDTEオブジェクトをIServiceProviderに渡します(GetServiceを呼び出すことができます)。

- Aaron Marten

0

の.slnファイルは単なるテキストファイルなのでは、メモ帳を使用しての.slnファイルを編集してみてください。あなたが探している物件を見つけることができるはずです。情報が理解できる形式であると仮定すると、単純なテキストパーサーを使用して.slnからプログラムで情報を抽出することができます。

関連する問題