升级VS 2005 Package到VS 2008时遇到的引用问题

文/winkingzhang  出处/博客园

    一些客户(在升级VS 2005 Package到VS 2008时)遇到了问题,而我写这篇帖子就是要解决这些问题。这里要感谢我们的Engineering Lead Deepankar调查了这个问题。

    如果你使用VS 2005开发VS Package工程,那么你不能够在不重新编译工程的情况下直接迁移package工程到Visual Studio 2008(译注:一些基础的迁移可以参考另一篇文章:Upgrading VS 2005 Packages to VS 2008: A Basic Guide),原因是ProjectAggregator2有了一些变更——ProjectAggregator2将不再做为单独的安装包分发,而是集成到VS平台里的Microsoft.VisualStudio.Shell.9.0.dll程序集里,就是说不是随VS 2008 SDK一起发布的。

    如果你打开Microsoft.VisualStudio.Shell.Flavor命名空间,你会看到如下列出的接口:

·        IvsProjectaggregator2

·        IVsAggregatableProjectCorrected

·        IVsAggregatableProjectFactoryCorrected. 

他们就是ProjectAggregator2集成到Shell DLL的对应,所以你需要添加工程引用,并更新ProjectBase目录下的FlavoredProjectFactoryBase.cs文件。

要想让vs 2005 package工程可以在Visual Studio 2008下工作,你需要做下面的事情:

·        通过使用VS 2008和.NET 3.5加载工程升级Package工程到VS 2008

·        删除对Microsoft.VisualStudio.Shell的引用

·        添加对Microsoft.VisualStudio.Shell.9.0和Microsoft.VisualStudio.Shell.Interop.9.0的引用

·        移除Project Base代码下的FlavoredProjectFactoryBase.cs文件

·        重新编译

 感谢原创者的辛勤劳动,希望对您有所帮助,转载请注明原出处。
 您可能对 [Visual Studio.NET] 的这些文章也感兴趣:

Visual Studio 2008正式版发布 可从MSDN下载
.NET开发最新参考资料推荐_20080430
Windows Workflow Foundation 之旅---(4)工作流通信
Entity Framework之Entity SQL(三) 1:N关系型数据的查询
调试.net开源代码的小技巧
.Net Micro Framework 模拟器详解 – 基本原理
Visual Studio 2008 SDK Version 1.0
VS2005中的WebSite和WebApplication有何区别
.net企业级架构实战之6——Spring.net管理web services
深入学习heritrix---体系结构(Overview of the crawler)