Windows 命令行中的“/p:”是什么意思

达斯埃沃利

我想在使用 dotnet publish 时在命令行中命名环境。我找到了这个解决方案

dotnet publish -o site /p:EnvironmentName=Production

我以前从未见过 /p: 参数,我想知道它到底是什么。我试图用谷歌搜索它,但由于它的语法,很难找到任何东西。

我特别想知道我是否也可以在 bash 中的 Linux 机器上使用此命令。

格查尔科特尔

基本上,它被传递给 MSBuild 并将一个名为EnvironmentNamevalue的变量/属性设置为Production然后 MSBuild 脚本可以在执行各种任务时读取该变量。<PropertyGroup>它与在 MSBuild 脚本(也是 VisualStudio 的 cpsroj 文件)中设置属性更不一样。

例如,您可以在这里看到它

msbuild buildapp.csproj -t:HelloWorld -p:Configuration=Release

请注意,-p:语法与/p:(also-t:/t:) 相同。前者是新的,而后者符合旧的“DOS”在 Windows 中提供命令行选项的方式。在相当长的几年里,许多来自 Microsoft 的新开发工具都接受这两种方式,但-首选,因为它也可以在 ie powershell 或 linux 中使用,而旧的/不能(或可以,但会导致一些问题或需要复杂转义/引用)。

编辑:是的,我没有完全回答.. -por/p不是“Windows 命令行的东西”。在您的示例中,这是dotnet程序的参数,我上面描述的只是因为dotnet碰巧后来调用了msbuild程序。如果您在其他任何地方,在任何其他应用程序中发现这样的-p/参数,那么它可能会做一些完全不同的事情。/p

最后,在 Linux 上——是的,你也可以dotnet在 Linux 上将它与工具集一起使用(net core、mono 等)((我强烈建议使用-p:版本))。但是,同样的规则适用。只要与这个名为 的应用程序一起使用dotnet,它就会产生在构建过程中设置环境名称的效果。在任何其他情况下,或任何其他应用程序中,此类参数可以具有其他含义。这一切都取决于应用程序,无论是在 Windows 还是 Linux 上。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章