首先补充说明一下我的环境:Visual Studio 2008 (with .Net FrameWork 3.5 sp1),其他环境次要,不多说。

  在解决STSDev不能创建解决方案的一个Bug后,参见本人的另外一篇文章《修复STSDev_v1.3在“Visual Studio 2008 with .NET 3.5”下不能创建解决方案的Bug》。

  比如,当我们使用STSDev创建Solution Type为“WebControl Solution (C# Assembly)”的SharePoint解决方案时,如下图所示:

 

   我们可以选择“Visual Studio 2005 with .NET 3.0” 、“Visual Studio 2008 with .NET 3.0 ”或“Visual Studio 2008 with .NET 3.5 ”中任意一项(这个无所谓),点击“Create Solution”,经过几秒后,出现界面如下:

 

   再次“确定”就会出现如下错误:

 

  经过简单调试,发现问题如下,在代码文件SolutionBuilder.cs中(大约300行起):

 

  在这我们看到,不管选用VS的哪个版本创建解决方案,完成以后都仅仅用VS2005打开(如果所选择的解决方案类型需要创建后打开才会出现此问题),而我本机仅有VS2008,因此报错。可以简单修改代码如下(修改6--8行):

 
  1. if (SolutionProvider.LaunchSolutionOnComplete)   
  2. {   
  3.     ProcessStartInfo pInfo = new ProcessStartInfo();   
  4.     pInfo.UseShellExecute = false;   
  5.     pInfo.WorkingDirectory = SolutionDirectory + @"\";   
  6.     if (SolutionVersionType == SolutionVersionTypeEnum.VS2005)   
  7.         pInfo.FileName = @"C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\devenv.exe"; //注意您的VS安装路径,可能不在C盘  
  8.     else  
  9.         pInfo.FileName = @"C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe"//注意您的VS安装路径,可能不在C盘
  10.     pInfo.Arguments = '"' + SolutionDirectory + @"\" + SolutionName + @".sln""";   
  11.  
  12.     pInfo.CreateNoWindow = false;   
  13.   
  14.   
  15.     Process.Start(pInfo);   
  16. }  

  保存后重新编译即可!

Currently rated 5.0 by 1 people

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5