• 谈asp.net解决方案的项目生成时的输出路径


    今日将一个大的asp.net解决方案从VS2005升级为VS2008,本来以为由VS自动转换后就应该不会有问题。没想到出现了不少问题,弄了大半天。

    其中的一个主要原因就是项目生成时的“输出路径”问题。

    一般说来,asp.net项目的类库项目的“输出路径”会有两种方式,一种就在自身项目的bin目录下,另一种则是将动态链接库生成放到web应用程序或者网站的bin目录下。

    第一种方式,比较方便,也是默认选项,其它项目引用时也是直接引用bin目录下的动态链接库。但是如果项目过多时,可能导致虽然只修改一个小地方,就要重新编译很多个项目的情况,编译速度慢。

    第二种方式,需要手动在项目属性里设置,一般都是用相对路径,如“../web/bin”类似的。这种项目引用时是引用web项目里的动态链接库,编译时不会连带编译,速度较快,比较适合较大型的项目。

    这两种方式应该是要结合使用的,一般来说使用工厂模式的项目和比较跟程序独立的项目可以考滤用第二种方式。建议可以看看Discuz!NT的项目属性,它有几个项目就是采用第二种方式的。

    而我前面说的那个解决方案06年时曾经将第一种方式改为第二种,所以其各自项目的bin目录下都还有06年时生成的dll存在。解决方案转化成2008的后,单独编译项目是没有问题的,但如果编译有引用另一项目的项目时,会把被引用项目的bin目录下的dll(就是前面说的06年残留下来的dll)复制到网站目录下,导致06年以后编写的程序都没有进入到dll里,产生错误。刚开始还没有发现这个问题,以为代码有错,但看程序却又是没有问题的,后面不小心发现,bin目录下的几个dll的生成日期是06年,才恍然大悟。

    后面没有办法,只好将若干个项目的输出路径改回了第一种方式,并更新了其它项目的引用,因为解决方案比较大,又在源代码管理下,弄了大半天工夫。

  • 相关阅读:
    四则运算 2
    《你的灯亮着吗》读后感 (前两篇)
    四则运算设计思路
    读书目标
    课堂总结
    人月神话感想
    软件工程概论11
    软件工程概论10
    bnu——GCD SUM (莫比乌斯反演)
    POJ1108_Split Windows 解题报告
  • 原文地址:https://www.cnblogs.com/flashlm/p/TalkAboutProjectOutPutPath.html
Copyright © 2020-2023  润新知