【发布时间】:2017-05-24 21:49:15
【问题描述】:
我正在尝试从我的命令行运行dotnet aspnet-codegenerator。第一次尝试,报错No executable found matching command "dotnet-aspnet-codegenerator"
我意识到我需要将aspnet-codegenerator 安装为“dotnet CLI 工具”(如果我在 csproj 文件中包含正确的<DotNetCliToolReference> 元素,他们的extensibility model 的一部分允许添加 CLI 命令。)1
This answer 告诉我需要哪个<DotNetCliToolReference>,即<DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="1.0.1" />,但它给我留下了几个问题:
- 我可以使用命令行而不是手动编辑来安装它吗
csproj?
- 我注意到我可以使用命令
dotnet add package安装软件包,但这会添加元素<PackageReference>,我需要<DotNetCliToolReference>; - 即运行命令会产生这个(错误的)元素:
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="1.0.1" />
- 我注意到我可以使用命令
- 这两个元素有什么区别?
- 我可以将它们添加到同一个
<ItemGroup>吗? - 如果我有一个
csproj,其第一个也是唯一一个<ItemGroup>包含<DotNetCliToolReference>,那么任何后续dotnet add package命令都会失败:error: Invalid restore input. Invalid restore input. DotnetCliToolReference-BundlerMinifier.Core Input files:。 - 我的解决方法是:
- 删除任何现有的
DotNetCliToolReference元素 - 运行
dotnet add package - 完成后,将我删除的内容添加回来。
- 删除任何现有的
- 我可以将它们添加到同一个
1(我在 Visual Studio Code 中并使用最新的;所以我们使用的是 csproj,而不是 project.json)
【问题讨论】:
标签: .net-core