我有一个Visual Studio解决方案,其中有一个.template.config
目录,其中包含一个template.json
文件。
{
"$schema": "http://json.schemastore.org/template",
"author": "Me",
"classifications": [ "Library" ],
"identity": "Our.Microservice.Template",
"name": "Our Microservice Solution Pattern",
"shortName": "our-microservice",
"tags": {
"type": "solution",
"language": "C#"
},
"sourceName": "Our.Microservice.Template",
"defaultName": "Our.Services.SERVICE-NAME-HERE",
"preferNameDirectory": false,
"guids": [
"dd357121-d106-45e8-99b7-324ea4b1babb",
"5cb69290-d0c5-4edc-ba1d-0b4b4f619157",
"cb79b212-29fc-44c6-a9a7-bb96b2327fd9"
]
}
我在解决方案的根目录中也有一个SolutionTemplate.nuspec
。
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
<metadata>
<id>Our.Microservice.Template</id>
<version>1.0.0</version>
<description>
Blah blah blah.
</description>
<authors>Me</authors>
<license type="expression">Apache-2.0</license>
<packageTypes>
<packageType name="Template" />
</packageTypes>
</metadata>
<files>
<file src="**\*.*" exclude="**\bin\**\*.*;**\obj\**\*.*;**\*.nuspec;**\*.nupkg;**\*.suo;docs\**;.git\**;**\.gitignore;.vs\**;.vscode\**;"
/>
</files>
</package>
我一直在打包模板:
nuget.exe pack "<path-to-dir>\SolutionTemplate.nuspec"
然后安装:
dotnet new --install "<path-to-dir>\Our.Microservice.Template.1.0.0.nupkg"
这是可行的,但是当我从模板创建一个新的解决方案时,输出会嵌套在一个额外的目录中,例如:
如果在VS的创建对话框中,我选择的位置为c:\development\existing-git-repo
,则最终输出将为
c:
\development
\existing-git-repo
\PROJECT-NAME
\dir-1
\dir-2
\file-1
\file-2
有没有办法阻止它在额外的目录中嵌套输出(基于项目名称)?
所以结果会是:
c:
\development
\existing-git-repo
\dir-1
\dir-2
\file-1
\file-2
1条答案
按热度按时间dz6r00yl1#
最后,我发现停止额外嵌套的最好(也是唯一)方法是确保使用命令行而不是通过Visual Studio创建新的解决方案。
如果我们使用
dotnet new
,我们可以使用输出选项:如果我们将其设置为
./
,则会停止额外的嵌套,例如: