VS2010 用のカスタム WPF スタート ページを作成しています。ビューで使用する一般的なソリューションのリストを表示しています。
ここで、選択したときに VS でソリューションを開きたいと思います。
何か案は?私はDTEのものを見ていますが、ほとんど成功していません。深く掘り下げる前に、DTE は正しい方法ですか、それとも別の方法はありますか?
VS2010 用のカスタム WPF スタート ページを作成しています。ビューで使用する一般的なソリューションのリストを表示しています。
ここで、選択したときに VS でソリューションを開きたいと思います。
何か案は?私はDTEのものを見ていますが、ほとんど成功していません。深く掘り下げる前に、DTE は正しい方法ですか、それとも別の方法はありますか?
解決策を見つけました。
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);
ソリューションへのパスを引数として単純に実行することはできませんか?
何かのようなもの:
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = vsdir;
startInfo.Arguments = pathtosolution;
Process.Start(startInfo);
(私があなたを正しく理解していれば)