构建 VS2008 .NET 3.0 解决方案,无需在构建服务器上安装 .NET 3.5
Posted
技术标签:
【中文标题】构建 VS2008 .NET 3.0 解决方案,无需在构建服务器上安装 .NET 3.5【英文标题】:Building a VS2008 .NET 3.0 solution without installing .NET 3.5 on build server 【发布时间】:2009-11-11 10:20:57 【问题描述】:我正在使用 3.0 和 VS 2008 进行开发。
问题是我的构建服务器没有安装 3.5,因此我无法构建解决方案,因为 2.0 的 MSBuild 将不支持 VS 2008 解决方案文件。
除了降级到 VS 2005 之外,没有简单的答案。
各位有什么想法吗?
【问题讨论】:
【参考方案1】:VS2008 支持 C# 3 - 您可能正在使用 C# 3 特定的功能,同时仍以 .NET 2.0 为目标。
您不能在构建服务器上安装 .NET 3.5 是否有充分的理由?这将是我的首选解决方案,而不是回归您使用的 VS 版本。
您可能可以自动降级解决方案/项目文件 - 如果您不做任何复杂的事情,只需更改版本号即可 - 但是让构建服务器使用与开发人员,IMO。
【讨论】:
我必须同意 - 如果可能的话,您应该升级服务器,然后,如果需要,明确说明您的项目中的目标 您好小马托尼,我们的测试和生产服务器是 .NET 3.0。我打算将我的解决方案降级到 2005 年,但我真的想使用 VS 2008。不幸的是,MS 没有考虑用户可能想要使用 MSBUILD 来针对 VS 2008 3.0 解决方案而不安装 3.5。似乎是基于激励的软件发布。 我无法更改生产和测试环境。我在一家大型银行工作,如果没有适当的程序,这是不可能的…… 您不需要更改生产环境或测试环境 - 只需更改构建环境(两者都不应计入)。您仍然可以以 .NET 3.0 为目标,但您必须使用 .NET 3.5 进行构建。无论如何,如果这不是一个选项,那么您确实应该在任何地方都使用 VS2005:在构建和开发环境中使用相同的编译器进行构建。 它不是一个选项,因为 3.5 包含 .NET 3.0 的 SP。此 SP 尚未部署到测试和生产。我将降级到VS2005。不过,我仍然很好奇这是否可能。【参考方案2】:由于您有 VS2008 项目和解决方案,您需要在构建服务器上安装 .NET 3.5。由于您仍然可以以 .NET 3.0 或 .NET 3.5 为目标,因此在构建计算机上安装了 .NET 3.5 不会对目标环境产生任何影响。
【讨论】:
我同意,但是对于 3.5,有一个适用于 .NET 3.0 的 SP。此 SP 目前未安装在我们的测试和生产服务器上。 在这种情况下,您可以使用 FxCop。 FxCop 将引发警告 CA1903,指示目标环境将需要 .NET 3.5 SP1。【参考方案3】:不“安装”就不能包含不同的版本吗?在存储库中,您可以添加版本化的 .NET 并将构建脚本指向您想要该项目的版本(我想像 Git 中的子模块)吗?所以不是安装 .NET 3.0、3.5、4.0 等包括库吗?
【讨论】:
环境需要复制生产环境。我们不会在我们的生产环境中这样做。因此不合适。以上是关于构建 VS2008 .NET 3.0 解决方案,无需在构建服务器上安装 .NET 3.5的主要内容,如果未能解决你的问题,请参考以下文章
VS 2008 Professional、Smart Device .NET C# 项目 - 缓慢构建
无法使用 VS Code 在 Windows 机器上为 linux 构建 .Net core 3.0 项目
VS2005的.NET Framework 2.0升级成NET Framework 3.5相对应的VS2005会升级成VS2008吗