gpt4 book ai didi

msbuild - 我可以使用 msbuild 4.0 来定位 dotnet 3.5 吗?

转载 作者:行者123 更新时间:2023-12-02 17:53:12 25 4
gpt4 key购买 nike

在我的解决方案中,我有对(例如)System.ServiceModel.dll 的项目引用,其中“使用特定版本”设置为 false。使用 msbuild 3.5 一切都构建得很好。

我想使用 msbuild 4.0 才能使用 property functions 。我尝试传递属性“TargetFrameworkVersion=3.5;ToolsVersion=3.5”。但是,我收到以下错误:

Could not load file or assembly 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.configuration\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.configuration.dll' or one of its dependencies.

如果我使用 msbuild 3.5,则不会发生这种情况。

我可以在不指定项目文件版本的情况下完成这项工作吗? (将来我们可能希望将应用程序升级到 dotnet 4)

编辑:我尝试在“外部”调用中使用 msbuild 3.5,并为需要新功能的目标调用 msbuild(使用 <msbuild> 任务)4.0。这也不走运 - 内部调用给出以下错误消息:

error MSB4062: Could not load file or assembly 'Microsoft.Build.Tasks.v4.0, Version=4.0.0.0 or one of its dependencies. The system cannot find the file specified. Confirm that the declaration is correct, and that the assembly and all its dependencies are available.

最佳答案

传递给msbuild的参数是:

/p:TargetFrameworkVersion="v3.5"

这在 MSBuild 版本 3.5 及更高版本(3.5、4.0、2012、2013 等)中可用。它更改该构建的 msbuild 脚本中的属性。

额外注意的是,您甚至可以为每个 MSBuild 版本指定计算机上安装的所有目标版本。通常您无法在 Visual Studio 中执行此操作(例如,在 2010 年使用 4.5.1),但是 MSBuild 4.0 (vs2010) 会将其作为属性值并使用它。

关于msbuild - 我可以使用 msbuild 4.0 来定位 dotnet 3.5 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9464475/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com