我想在使用 dotnet publish 时在命令行中命名环境。我找到了这个解决方案
dotnet publish -o site /p:EnvironmentName=Production
我以前从未见过 /p: 参数,我想知道它到底是什么。我试图用谷歌搜索它,但由于它的语法,很难找到任何东西。
我特别想知道我是否也可以在 bash 中的 Linux 机器上使用此命令。
基本上,它被传递给 MSBuild 并将一个名为EnvironmentName
value的变量/属性设置为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 中使用,而旧的/
不能(或可以,但会导致一些问题或需要复杂转义/引用)。
编辑:是的,我没有完全回答.. -p
or/p
不是“Windows 命令行的东西”。在您的示例中,这是dotnet
程序的参数,我上面描述的只是因为dotnet
碰巧后来调用了msbuild
程序。如果您在其他任何地方,在任何其他应用程序中发现这样的-p
/参数,那么它可能会做一些完全不同的事情。/p
最后,在 Linux 上——是的,你也可以dotnet
在 Linux 上将它与工具集一起使用(net core、mono 等)((我强烈建议使用-p:
版本))。但是,同样的规则适用。只要与这个名为 的应用程序一起使用dotnet
,它就会产生在构建过程中设置环境名称的效果。在任何其他情况下,或任何其他应用程序中,此类参数可以具有其他含义。这一切都取决于应用程序,无论是在 Windows 还是 Linux 上。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句