首先补充说明一下我的环境: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行):
- if (SolutionProvider.LaunchSolutionOnComplete)
- {
- ProcessStartInfo pInfo = new ProcessStartInfo();
- pInfo.UseShellExecute = false;
- pInfo.WorkingDirectory = SolutionDirectory + @"\";
- if (SolutionVersionType == SolutionVersionTypeEnum.VS2005)
- pInfo.FileName = @"C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\devenv.exe"; //注意您的VS安装路径,可能不在C盘
- else
- pInfo.FileName = @"C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe"; //注意您的VS安装路径,可能不在C盘
- pInfo.Arguments = '"' + SolutionDirectory + @"\" + SolutionName + @".sln""";
-
- pInfo.CreateNoWindow = false;
-
-
- Process.Start(pInfo);
- }
保存后重新编译即可!
Currently rated 5.0 by 1 people
- Currently 5/5 Stars.
- 1
- 2
- 3
- 4
- 5