基本上,它被传递给MSBuild并设置一个名为
EnvironmentName
有价值
Production
。然后,MSBuild脚本可以在执行各种任务时读取该变量。这与在中设置属性基本相同
<PropertyGroup>
在MSBuild脚本中(也是VisualStudio的cpsroj文件)。
你可以看到
for example here
msbuild buildapp.csproj -t:HelloWorld -p:Configuration=Release
注意
-p:
语法与
/p:
(还有
-t:
和
/t:
等等)。前者是新的,而后者符合旧的“DOS”方式,即在Windows中提供命令行选项。在相当长的几年里,微软的许多新开发工具都接受这两种方式,但是
-
是首选,因为它也可以在powershell或linux中使用,而旧版本
/
不能(或可以,但会导致一些问题或需要复杂的转义/引用)。
编辑:啊,是的,我没有完全回答。。这个
-p
或
/p
不是“windows命令行的东西”。在您的示例中,这是
dotnet
我上面描述的是真实的,因为
网络
后来碰巧打电话进来
msbuild
程序如果你发现了
-p
/
/p
参数,则它可能会执行完全不同的操作。
最后,在Linux上——是的,您可以将其与
网络
Linux上的工具集(NetCore、mono等)(我强烈建议使用
-p:
版本)。然而,同样的规则也适用。只要与这个名为
网络
,它将具有在生成期间设置environmentname的效果。在任何其他情况下,或任何其他应用程序中,此类参数可能具有其他含义。无论是在Windows还是Linux上,它都依赖于应用程序。