首先,让我解释导致这个问题的问题。
如果我使用dotnet new
创建新项目并使用-n
arg指定随机项目名称,则在执行dotnet restore
- 来自默认bash终端的dotnet build
后 - >最终输出名称始终 React
+ .output_type。像:
/bin/Debug/netcoreapp2.0/React.dll
我没有使用dotnet
命令指定任何其他参数。看起来选择什么类型的项目并不重要:我尝试过使用console
和webapi
。
但是我发现如果我在VS Code中打开项目并从VS Code终端执行相同的dotnet build
命令(也就是bash) - >输出名称正确且等于project_name+.output_type
。
所以在我认为输出名称总是在构建期间取自.csproj
文件名之前。但现在看来有些东西可以覆盖这种行为:不同的终端 - 不同的环境设置等。
原因输出名称包含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/
答案 0 :(得分:2)
感谢@MartinUllrich,我发现$TARGETNAME
变量会覆盖项目名称。删除变量可以解决问题:
> unset TARGETNAME