我有3个.net项目。
Project1.dll由VS2008项目生成。
Project2.dll由引用Project1.dll的VS2005项目生成。
Project3.dll由VS2008项目生成,该项目引用Project1.dll和Project2.dll。
现在,我构建了Project1.dll,并手动将其复制到Project 2可以拾取它的地方。
然后我构建Project2.dll并手动将它和Project1.dll复制到Project 3可以接收它们的地方。
显然我做错了(手动)。保持项目参考资料最新的正确方法是什么?
将Project2更新到VS2008然后创建一个包含所有3个项目的解决方案目前不是一个选项。我们有一个第三方visualstudio插件,在VS2008中还没有。 Project2必须留在VS2005
将Project1和Project3降级到VS2005然后创建一个解决方案也不是一个选项。我们在这些项目中依赖于C#3.0和.net 3.5功能。
答案 0 :(得分:4)
大卫 可能最好的选择是为所有三个项目建立一个公共构建文件夹。这可以在Project Properties->中完成。构建 - >输出路径。然后将引用指向输出文件夹。这样,无论何时构建任何较低的项目,较高的项目都将具有最新版本。您也可以设置每个配置的路径(Debug,Release),因此您无需为每种类型的构建更改它。
答案 1 :(得分:2)
Project3的预构建事件如何发布并使用批处理文件构建Project1将其复制到Project2文件夹,然后构建project2并将其复制到project3文件夹。
答案 2 :(得分:1)
我建议在解决方案之间共享csproj / vbproj文件。项目文件的格式在两个版本的工作室之间是兼容的(但是,解决方案文件不是这样),只要您的VS2008项目针对2.0运行时,您就可以轻松编译它们。这将允许您引用项目,这将负责依赖项。
如果你有一个需要在两个版本的工作室之间工作的网络项目,那么它变得毛茸茸的唯一地方。在这种情况下,对项目文件进行一些修改,这些修改将指向正确的MSBuild目标文件。
答案 3 :(得分:0)
我们使用构建脚本来处理依赖项,构建DLL并执行您手动执行的操作。
答案 4 :(得分:0)
我过去使用的一个技巧是将所有内容都移到2008年。然后我在2005年为项目二设置了一个特殊的解决方案并使用它来处理插件。让它发挥作用仅取决于项目2在2008年的表现有多糟糕。