是否有一种特殊的方法来卸载described in the .NET Core docs以外的文件夹模板dotnet new
项目?
dotnet new -u <FILE_SYSTEM_DIRECTORY>
为dotnet new
设置文件夹模板后,我安装了它(per docs)。
dotnet new --install ./some-template-folder/
这样就可以成功放置模板,以便与dotnet new {shortName}
一起使用。
The template "Some Template Name" was created successfully.
不幸的是,我之后无法使用适当的命令(per docs)
卸载该模板dotnet new --uninstall ./some-template-folder/
导致以下输出。
Could not find something to uninstall called '.\some-template-folder\'.
如果有帮助,这里是文件夹的 .template.config 子文件夹中包含的文件夹的最小 template.json 文件。
{
"$schema": "http://json.schemastore.org/template",
"author": "Some Author",
"classifications": [ "Some", "Various", "Search Keywords" ],
"identity": "Some.Identity",
"shortName": "name-used-in-dotnetnew",
"name": "Some Template Name"
}
答案 0 :(得分:6)
这结果是我的机器特有的模板状态的问题。在执行dotnet new --debug:reinit
将模板恢复到新安装状态后,问题就消失了。
虽然我的问题是特定于机器的,但是通过dotnet new --uninstall <path>
路径卸载有一些独特的元素也可能导致此问题。
虽然您可以从相对路径(例如dotnet new --install ./some-template
)进行安装,但您必须从完全限定的路径卸载。
dotnet new --uninstall C:\full\path\to\some-template
此外,当您传递完全限定的--uninstall
路径时,请不要包含命令行环境在选项卡完成路径时可能自动包含的终端斜杠。
dotnet new --uninstall C:\full\path\to\some-template #<-- no terminal \ here
虽然以下所有细节仍然准确无误,但他们现在已经添加了一个系统,用于确定所需的卸载字符串。运行不带任何参数的uninstall命令,以查看按卸载所需的确切字符串列出的已安装模板列表。
dotnet new --uninstall
它将输出一个这样的列表,其中包含NuGet包的短名称和本地安装模板的完整路径。
Template Instantiation Commands for .NET Core CLI
Currently installed items:
Microsoft.DotNet.Common.ItemTemplates
...
dotnet-new-project-helper
C:\full\path\to\some-template
然后,您可以使用列出的路径卸载最终模板。
dotnet new --uninstall C:\full\path\to\some-template