Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将Azure函数项目添加到解决方案后,一些tasks.json文件设置已被删除_C#_Azure_Visual Studio Code_Azure Functions - Fatal编程技术网

C# 将Azure函数项目添加到解决方案后,一些tasks.json文件设置已被删除

C# 将Azure函数项目添加到解决方案后,一些tasks.json文件设置已被删除,c#,azure,visual-studio-code,azure-functions,C#,Azure,Visual Studio Code,Azure Functions,我有一个小问题,我不确定我是否正确地将Azure功能项目添加到了我的工作区/解决方案中。 我有一个解决方案,其中我有4个项目,一个API(DotNet Core)、一个客户端(Angular)、一个Core(带有模型和接口的类)、一个基础设施(EF、DB、服务) 我想将Azure功能项目添加到此解决方案/工作区,为此我创建了一个名为“Azure”的文件夹(如绿色所示),然后单击我的Azure扩展,然后单击“添加新项目”,并完成了步骤。它成功地创建了它,并且所有文件都在该文件夹中。我可以运行该功能

我有一个小问题,我不确定我是否正确地将Azure功能项目添加到了我的工作区/解决方案中。 我有一个解决方案,其中我有4个项目,一个API(DotNet Core)、一个客户端(Angular)、一个Core(带有模型和接口的类)、一个基础设施(EF、DB、服务)

我想将Azure功能项目添加到此解决方案/工作区,为此我创建了一个名为“Azure”的文件夹(如绿色所示),然后单击我的Azure扩展,然后单击“添加新项目”,并完成了步骤。它成功地创建了它,并且所有文件都在该文件夹中。我可以运行该功能并在其中接收消息!好的,好的

以下是我的Azure函数扩展选项

问题-现在,当我调试网站应用程序(Angular/.Net Core)并启动Angular服务器,然后调试/启动时,我应该让编译器为我构建一个新的API.DLL,但它没有!我看到一个错误消息弹出显示这一点

我可以看到我的tasks.json文件已被修改

下面是我添加Azure函数之前的tasks.json。您可以看到API.csproj信息的构建标签

{
“版本”:“2.0.0”,
“任务”:[{
“标签”:“构建”,
“命令”:“dotnet”,
“类型”:“过程”,
“args”:[
“建造”,
“${workspaceFolder}/API/API.csproj”,
“/property:generativellpaths=true”,
“/ConsoleLogger参数:NoSummary”
],
“问题匹配器”:“$msCompile”
},
{
“标签”:“发布”,
“命令”:“dotnet”,
“类型”:“过程”,
“args”:[
“发布”,
“${workspaceFolder}/API/API.csproj”,
“/property:generativellpaths=true”,
“/ConsoleLogger参数:NoSummary”
],
“问题匹配器”:“$msCompile”
},
{
“标签”:“手表”,
“命令”:“dotnet”,
“类型”:“过程”,
“args”:[
“看”,
“跑”,
“${workspaceFolder}/API/API.csproj”,
“/property:generativellpaths=true”,
“/ConsoleLogger参数:NoSummary”
],
“问题匹配器”:“$msCompile”
}
]

}
一些快速挖掘,我在
vscode azurefunctions
repo中发现了这一点

private insertnewtask(现有任务:ITask[]|未定义,newtask:ITask[]):ITask[]{
existingTasks=existingTasks | |[];
//删除与我们要添加的任务相匹配的任务
existingTasks=existingTasks.filter(t1=>!newTasks.find(t2=>{
if(t1.type==t2.type){
开关(t1型){
案例功能:
返回t1.command==t2.command;
外壳:
案例“过程”:
返回t1.label==t2.label&&t1.identifier==t2.identifier;
违约:
//不值得为无法识别的任务类型抛出错误
//最坏的情况是用户的tasks.json中有一个额外的任务
返回false;
}
}否则{
返回false;
}
}));
现有任务。推送(…新任务);
返回现有任务;
}
从外观上看,如果现有任务在
类型
标签
标识符
中匹配,则扩展将尝试替换它们,而不是尝试扩展它们;在我看来,对于像
过程
构建
这样常见的事情,这样做是明智的

因此,您是正确的,您的
tasks.json在使用扩展提供的向导创建新func项目时由扩展更新。老实说,我认为这是一个bug,你可能想直接向他们报告。还有,有关的代码

将问题报告为bug并等待解决的备选方案:

  • 将tasks.json设为只读(yikes)
  • 使用func核心工具

使用Func核心工具,您可以从您想要的功能所在的文件夹中使用
Func new
(使用您喜欢的终端)。它将允许您选择工作运行时(dotnet、js、python等)和项目名称。它不会干扰您现有的
tasks.json

HI ELI。我已经向该网站提交了一个问题,我会看看他们是否回复。与此同时,我有几个问题要问你。1.我的情况不常见吗?考虑到像我这样的开发人员希望使用Azure函数调用的引用项目,所以将其包含在解决方案中并与其他项目一起使用,这似乎是非常常见的?2.您知道有其他方法可以将Azure功能项目添加到包含其他项目的解决方案中吗?也许还有另一种方法,但我不知道?最后,我不确定你说的“给你原来的任务一个不同的标识符”是什么意思,然后再试一次。当你说“标识符”,你的意思是“标签”,因为我没有看到任何“标识符”的名称。我能说的是,在我添加Azure项目后,我将原始task.json信息复制/粘贴回了文件中,它工作正常。我不能说它是否常见。但从个人经验来看,是的,我已经在现有的解决方案中添加了几个函数项目,其中一个共享库被API、函数项目甚至第三方使用。但我只使用VS2019 Enterprise。这似乎与vscode扩展特别相关。正如我在回答中所说的,您可以使用func核心工具向现有代码中添加新的func项目。应该是可行的(从我记忆中),而且它不会影响您的
任务。json
。我已经更新了答案,希望它能更好地解释您如何尝试使用唯一的
标识符。嗨,Eli-只是一个快速更新。我试图添加唯一的“标识符”,但intellisense发出警告说“用户定义的标识符已弃用。对于自定义任务,请使用该名称作为引用,对于