将项目移动到另一个目录会导致缺少视图

Joh*_*edy -4 c# asp.net-core-mvc dotnet-cli asp.net-core-2.0

我使用dotnet cli创建了一个项目,一切正常,直到我想为应用程序编写测试.
我创建了一个src目录并将整个Web项目移动到该src文件夹,之后我在一个名为的文件夹中创建了测试项目tests.

我在测试项目中添加了对Web应用程序的引用,测试成功运行但是当我运行我的应用程序时,dotnet run我收到以下错误:

在此输入图像描述

Views文件夹位于src目录中,其他所有文件都包含*.csproj.

请在下面找到我的文件夹结构:

文件夹结构

任何帮助,将不胜感激.谢谢.

Geo*_*vos 7

更新:

我现在看看你的问题是什么,在launch.json中,改变

cwd": "${workspaceFolder}",
Run Code Online (Sandbox Code Playgroud)

cwd": "${workspaceFolder}\\src",
Run Code Online (Sandbox Code Playgroud)

这与vs代码有关,你需要告诉它哪个文件夹是工作区
你的代码在Visual Studio上运行正常
另外,不要忘记删除

products.Add("Error", null);
Run Code Online (Sandbox Code Playgroud)

原帖:

不确定哪个是您当前的文件夹结构,但让我们采用您的原始示例.

如果只是在"src"文件夹中移动"Views"文件夹,则可以在Startup.cs文件中添加以下内容:

    public void ConfigureServices(IServiceCollection services)
    {
        //..
        services.Configure<RazorViewEngineOptions>(o =>
        {
            for (int i = 0; i < o.ViewLocationFormats.Count; i++)
                o.ViewLocationFormats[i] = "/src" + o.ViewLocationFormats[i];
        });
    }
Run Code Online (Sandbox Code Playgroud)

现在,如果您也移动了其他资源(css,images),则必须更新对它们的任何引用.
我不明白为什么你应该偏离惯例,创建一个新的清洁项目,测试,看看你的项目有什么不同