.net core dotnet build如何选择输出名称

.net core dotnet build如何选择输出名称,.net-core,.net Core,首先,让我解释一下导致这个问题的问题 如果我使用dotnet new创建一个新项目,并使用-narg指定一个随机项目名称,那么在从默认bash终端执行dotnet restore-dotnet build后,最终输出名称始终为React+。输出类型。比如: /bin/Debug/netcoreapp2.0/React.dll 我不使用dotnet命令指定任何附加参数。而且看起来选择哪种类型的项目无关紧要:我已经用console和webapi试过了 但是我发现,如果我在VS代码中打开项目,并从

首先,让我解释一下导致这个问题的问题

如果我使用
dotnet new
创建一个新项目,并使用
-n
arg指定一个随机项目名称,那么在从默认bash终端执行
dotnet restore
-
dotnet build
后,最终输出名称始终为
React
+。输出类型。比如:

/bin/Debug/netcoreapp2.0/React.dll
我不使用
dotnet
命令指定任何附加参数。而且看起来选择哪种类型的项目无关紧要:我已经用
console
webapi
试过了


但是我发现,如果我在VS代码中打开项目,并从VS代码终端(也就是bash)执行相同的dotnet build命令,那么输出名称是正确的,并且等于project\u name+。output\u type

所以之前我认为在构建过程中,输出名称总是取自
.csproj
文件名。但现在看起来有什么东西可以覆盖这种行为:不同的终端-不同的环境设置,等等

原因输出名称包含
React
我将责任归咎于React cli工具,但这无助于我确定名称覆盖的原因

我从两个终端执行了
dotnet--info
,输出是相同的:

.NET Command Line Tools (2.0.0)

Product Information:
 Version:            2.0.0
 Commit SHA-1 hash:  cdcd1928c9

Runtime Environment:
 OS Name:     Mac OS X
 OS Version:  10.13
 OS Platform: Darwin
 RID:         osx.10.12-x64
 Base Path:   /usr/local/share/dotnet/sdk/2.0.0/

感谢@MartinUllrich,我发现
$TARGETNAME
变量覆盖了项目名称。删除变量可以修复此问题:

> unset TARGETNAME

msbuild还将环境变量视为可能重写项目中的值的“全局属性”。
env
是否显示设置为
React
的任何变量?