我已经(全新安装)了Visual Studio Professional 2017(V 15.9.4),一个带有多个项目的Visual Studio solution,一个.sln
文件和package.json
个项目相应的项目文件夹exampleCoorp.API
,exampleCoorp.UI
等。前端项目用React编写,其他项目用C#编写。
当我导航到视图>其他Windows> Task Runner Explorer (最初由Mads Kristens移交时,请参见marketplace.visualstudio.com)。由于我们也有一个React部分,所以我也安装了扩展名NPM Task Runner。
预计我会遇到以下情况(我的队友截屏,我遵循了他们的项目设置说明):
但是,对我来说,实际结果却有所不同:
我必须理解的错误来自显示的Visual Studio面板:
未找到任务运行程序配置。
但是为什么呢?更重要的是,我该如何解决?有解决方法吗?
只有一个Google命中的[developercommunity.visualstudio.com]声称(唯一?)原因可能是放错位置的package.json
文件:
这两个问题都是由于Visual Studio的NPM集成不支持位于子文件夹而不是项目根目录中的package.json文件。微软自己的官方Angular项目模板要求将package.json放在/ ClientApp子文件夹中,这不会改变。
这显然不是我的问题。任何帮助提示表示赞赏!
答案 0 :(得分:1)
NPM Task Runner扩展程序将仅找到 Visual Studio项目文件夹包含“ package.json”文件的任务。如果此文件位于子文件夹(或父文件夹,即使您将其视为主“项目”文件夹),则在Task Runner Explorer中将看不到那些任务。
提问者使用“项目”一词来表示两个不同的事物。他说他有一个“具有多个子项目的React项目”。 “ Visual Studio项目”不能具有“子项目”,因此我想知道package.json文件的确切位置。 [他随后更改了措辞,但我认为这可能是最可能引起问题的原因。]
如果在一个VS项目文件夹中创建package.json文件,您将立即看到TR Explorer将项目添加到其下拉列表中,并且可以选择在TR Explorer中查看其任务。您无需重新启动VS,甚至不需要重新构建。
SPA模板创建了一些项目,这些项目将客户端代码放在项目文件夹的子文件夹中。例如,“ dotnet new angular”将客户端代码及其package.json文件放入子文件夹“ ClientApp”中。在这种情况下,如果要从TR Explorer访问这些任务,则需要执行以下操作:在VS项目文件夹中创建一个package.json文件,该文件将代理您要使用的文件。例如:
{
"scripts": {
"serve": "cd ClientApp && npm run serve",
"build": "cd ClientApp && npm run build"
},
"-vs-binding": {
"BeforeBuild": [
"build"
]
}
}
答案 1 :(得分:0)
在执行以下步骤(无特定顺序)之后,Task Runner Explorer最终将正常工作:
我将两个子项目标记为启动项目,其中一个子文件夹的子文件夹(实际上是该子项目的根文件夹)中有一个package.json
。
我(重新)安装了NPM Task Runner,然后重新启动了Visual Studio。
我的同事还建议重新启动计算机,但是我不确定这是否有必要。