我该在哪里下载.NET 4.5多目标包以用于我的构建服务器?

51
我希望在TeamCity中构建一个 .net 4.5/VS2012 的解决方案。我的构建可以在已安装VS2012的代理服务器上运行,但是在没有安装VS2012的代理服务器上,我会收到如下警告:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(983,5): warning MSB3644: 未找到 ".NETFramework,Version=v4.5" 框架的参考程序集。
为了解决这个问题,请安装此框架版本的SDK或Targeting Pack,或将应用程序重新定位到您已安装SDK或Targeting Pack的框架版本。请注意,程序集将从全局程序集缓存(GAC)中解析,并将用于引用程序集的位置。因此,您的程序集可能无法正确定位到您想要的框架。
我能否像.NET 4.0一样,只安装目标而不安装所有Visual Studio 2012?
下载在哪里?
(我感到很荒谬,但我已经搜寻了很久!真的!This site建议它只能与VS2012一起使用,这似乎很疯狂。)

你在构建代理上安装了.NET 4.5本身吗?这可能已经足够了。 - Jon Skeet
是的,我有这个下载48MB的文件。看起来不够用。 - Michael Haren
嗯,也许这个特定问题实际上只是给我一些构建警告,而不是错误。虽然不是很严重,但我还是很好奇是否有办法解决... - Michael Haren
我放弃了,只是安装了Visual Studio 2012 Express(用于Web)。这解决了问题。 - Michael Haren
1
同样的问题。在开发机上使用构建代理工具可以成功构建,但是在构建服务器代理工具上出现相同的问题。复制文件夹并重启也没有帮助——我猜它没有正确地将其注册到GAC中。现在正在安装VS2012用于Web……该死的微软和他们的程序集碎片化! - Ales Potocnik Hahonina
8个回答

93
你不需要安装任何SDK。只需从开发计算机将以下文件夹复制到与TFS构建计算机相同的文件夹中:

C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5

如果这对你没有用,请参考:http://getdotnet.azurewebsites.net/target-dotnet-platforms.html,在该网站上您将找到所需的SDK。但是要注意@Lu55的评论:链接到.NET Framework 4.5部分的“Windows 8软件开发工具包(SDK)”意外重定向到“.NET Framework 4.5.1”的“Windows 8.1软件开发工具包(SDK)”。 @dotarj提到:“Windows 8软件开发工具包(SDK)” 的链接实际上是针对.NET Framework 4.5的,链接为:https://developer.microsoft.com/en-us/windows/downloads/windows-8-sdk

4
应将此标记为答案。它很简单,你可能已经在你的机器上有这些文件,并且它可以修复问题。 - Chris Porter
3
使用上述页面时请保持警惕!从.NET Framework 4.5部分链接到“Windows 8的Windows软件开发工具包(SDK)”将意外重定向到“Windows 8.1的Windows软件开发工具包(SDK)”,该工具包适用于.NET Framework 4.5.1。 - Ilya Serbis
1
@cederlof,看起来你的SDK链接已经失效了,这里提供一个新的链接: http://getdotnet.azurewebsites.net/target-dotnet-platforms.html - richbria90
1
这对我在设置Jenkins服务器时非常有效。在将文件添加到指定位置之前,我的构建控制台输出显示“未找到框架“.NETFramework,Version = v4.6.1”的参考程序集。”一旦我添加了它们,该消息就消失了(然后我删除并重新构建,再次添加并重新构建以确保)。现在要解决其他100个错误... :p - Andy
1
将文件从一台机器复制到另一台机器绝不是最佳方法。最好找到源并进行安装。 - Gavin Stevens
显示剩余3条评论

27
如果你需要证明,可以在Windows SDK中找到安装程序:这里
注意:这仍然不会给你Microsoft.WebApplication.targets,你仍然需要手动复制或在服务器上安装VS。
我使用了免费的Visual Studio Express 2013来解决这个问题。

4
有一个 NuGet 替换包可用于 Microsoft.WebApplication.targets - MSBuild.Microsoft.VisualStudio.Web.targets。 - James Woolfenden
Windows 10 链接(未经验证是否具有引用程序集)https://developer.microsoft.com/en-us/windows/downloads/windows-10-sdk - Simon_Weaver

8

1
请注意 - 在安装过程中有一个选项,可以选择您想要安装的内容。具体来说,还有一个 .NET Framework 4.5 / 4.5.1 SDK 的选项。 - Jaans
这个解决方案对我有用,在我的情况下这不是一个构建服务器,而是一台安装了Visual Studio 2015的开发机器。 - Oscar

2

2

我的操作系统是Win7 x64

我也遇到了同样的问题,根据另一个答案,我找到了解决方法:

我系统中只有"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.2"这个文件夹,为了解决这个问题,我将v4.52重命名为v4.5,然后它就可以工作了。

所以为了长期解决这个问题,我创建了一个链接到4.5.2文件夹的联接点,并将联接点重命名为v.4.5,这样就可以工作了。


0

我在Windows Server 2016上遇到了以下错误:

未找到框架“.NETFramework,版本=4.6.1”的参考程序集

我检查了我的构建服务器“C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework”,发现我没有所需的版本。

然后我从https://visualstudio.microsoft.com/downloads/安装了最新的.NET Framework版本。


0

我在使用Visual Studio 2013和.NET 4.5的项目中遇到了这个问题。似乎是因为我将项目移动到另一个目录。

您可以通过验证项目文件(.csproj文件)中的HintPath是否正确来解决此问题。

<HintPath>..\..\..\..\..\..\..\..\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETCore\v4.5.1\System.Runtime.WindowsRuntime.dll</HintPath>

自从我创建了一个新目录并将我的项目移动到该目录中,我发现在HintPath中的System.Runtime.WindowsRuntime.dll的相对路径不再正确,因此无法找到该库。

修复这个路径对我解决了问题。


-1

2
此页面缺少.NET 4.5的目标组件包 :-( - ˈvɔlə

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接