2

VS2010 用のカスタム WPF スタート ページを作成しています。ビューで使用する一般的なソリューションのリストを表示しています。

ここで、選択したときに VS でソリューションを開きたいと思います。

何か案は?私はDTEのものを見ていますが、ほとんど成功していません。深く掘り下げる前に、DTE は正しい方法ですか、それとも別の方法はありますか?

4

2 に答える 2

3

解決策を見つけました。

Visual Studio テンプレートによって生成された Utilities クラスには、次の静的メソッドがあります。

public static DTE2 GetDTE(object dataContext)
{
    ICustomTypeDescriptor typeDescriptor = dataContext as ICustomTypeDescriptor;
    Debug.Assert(typeDescriptor != null, "Could not get ICustomTypeDescriptor from dataContext. Was the Start Page tool window DataContext overwritten?");
    PropertyDescriptorCollection propertyCollection = typeDescriptor.GetProperties();
    return propertyCollection.Find("DTE", false).GetValue(dataContext) as DTE2;
}

コントロールから GetDTE() メソッドに DataContext を渡すことで、次のことができます。

var dte = Utilities.GetDTE(dataContext);
dte.Solution.Open(fullPathToSolution);
于 2010-08-18T11:15:31.657 に答える
0

ソリューションへのパスを引数として単純に実行することはできませんか?

何かのようなもの:

ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = vsdir;
startInfo.Arguments = pathtosolution;
Process.Start(startInfo);

(私があなたを正しく理解していれば)

于 2010-08-17T16:09:12.250 に答える