gpt4 book ai didi

.net - 从Powershell运行MSBuild而不指定.Net版本

转载 作者:行者123 更新时间:2023-12-03 00:50:14 25 4
gpt4 key购买 nike

我按照Scott Guthrie的示例(此处是Automate Everything (Building Real-World Cloud Apps with Azure))创建了一个Powershell脚本,用于部署Web应用程序
使用此MSBuild调用来构建和发布Web应用程序

& "$env:windir\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe" $ProjectCsproj `
/p:VisualStudioVersion=12.0 `
/p:DeployOnBuild=true `
/p:PublishProfile=$PublishXmlFile `
/p:Password=$Password
如您所见,此示例假定.Net框架版本为4.0.30319,并且对于其他版本(或将来的.Net安装)将失败。
有没有一种方法可以运行此MSBuild命令而不假定任何特定的.Net版本?

最佳答案

您可能希望从Powershell本身中找到所需的.NET构建器,因为它在基本命令集中具有足够的工具。如果您要使用其他版本的.NET Framework来构建项目,则可能会有一些窍门,例如缺少,过时/过时的类,属性,方法,或者可能是语法或类依赖项的更改,这些更改会使您的项目无法在新的.NET版本下正确构建。但是,您可以尝试枚举构建器并找到最接近v4.0.30319的构建器。一个例子:

$builders= get-childitem "$env:windir\Microsoft.NET" -recurse -filter "MSBuild.exe"
$builders | select -expand FullName

这将显示可用于构建项目的可用 MSBuild.exe文件名。然后,解析 FrameworkFrameWork64以获得64位或32位生成器,然后根据您喜欢的算法从列表中进行选择。 (我怀疑您是否永远需要此技巧。)

关于.net - 从Powershell运行MSBuild而不指定.Net版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30753908/

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