3

我有 3 个 .net 项目。

Project1.dll 由 VS2008 项目生成。

Project2.dll 由引用 Project1.dll 的 VS2005 项目生成。

Project3.dll 由引用 Project1.dll 和 Project2.dll 的 VS2008 项目生成。

现在,我构建了 Project1.dll,并手动将其复制到 Project 2 可以提取它的地方。

然后我构建 Project2.dll 并手动将它和 Project1.dll 复制到 Project 3 可以提取它们的地方。

显然我做错了什么(手动)。使我的项目参考资料保持最新的正确方法是什么?


将 Project2 更新到 VS2008,然后创建一个包含所有 3 个项目的解决方案目前不是一种选择。我们有一个 3rd 方的 visualstudio 插件,它还不能在 VS2008 中工作。Project2 必须留在 VS2005

将 Project1 和 Project3 取消更新到 VS2005,然后创建一个解决方案也不是一种选择。我们在这些项目中依赖于 C# 3.0 和 .net 3.5 功能。

4

5 回答 5

4

可能最好的选择是为所有三个项目提供一个通用的构建文件夹。这可以在项目属性-> 构建-> 输出路径中完成。然后将引用指向输出文件夹。这样,无论何时您构建任何较低的项目,较高的项目都将拥有最新版本。您也可以为每个配置(调试、发布)设置路径,因此您无需为每种构建类型更改它。

于 2008-10-01T15:39:41.847 回答
2

Project3 的预构建事件怎么样,它出去并使用批处理文件构建 Project1 将其复制到 Project2 文件夹,然后构建 project2 并将其复制到 project3 文件夹。

于 2008-10-01T15:41:07.523 回答
1

我建议在解决方案之间共享 csproj/vbproj 文件。项目文件的格式在两个版本的 studio 之间是兼容的(但是解决方案文件不兼容),只要您的 VS2008 项目针对 2.0 运行时,编译它们应该没有问题。这将允许您引用将处理依赖关系的项目。

唯一麻烦的地方是如果您有一个需要在两个版本的工作室之间工作的 Web 项目。在这种情况下,将对项目文件进行一些修改,这些修改将指向正确的 MSBuild 目标文件。

于 2008-10-01T16:17:42.973 回答
0

我们使用构建脚本来处理依赖关系、构建 DLL 并手动执行您正在执行的操作。

于 2008-10-01T15:35:04.543 回答
0

我过去使用的一个技巧是将所有内容移至 2008 年。然后我在 2005 年为项目二设置了一个特殊的解决方案,并使用它与插件一起工作。让它发挥作用取决于项目二在 2008 年的表现有多糟糕。

于 2008-10-01T16:14:22.420 回答