Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/257.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/28.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# 找不到模块';aspnet网页包';使用';网络出版';in.NETCore2.0&;有棱角的_C#_Angular_Asp.net Core_Asp.net Core 2.0 - Fatal编程技术网

C# 找不到模块';aspnet网页包';使用';网络出版';in.NETCore2.0&;有棱角的

C# 找不到模块';aspnet网页包';使用';网络出版';in.NETCore2.0&;有棱角的,c#,angular,asp.net-core,asp.net-core-2.0,C#,Angular,Asp.net Core,Asp.net Core 2.0,我一直在努力寻找这个问题的答案,但没有结果。。我正在尝试使用命令行命令“dotnet publish”发布我的.Net Core 2.0&Angular项目。我成功发布了该项目,但是当我尝试在发布的文件夹中运行我的项目的.dll时,我的项目在开发环境中运行时会出现以下错误: 未处理的异常:System.AggregateException:发生一个或多个错误。(由于加载“aspnet Webpack”时出错,Webpack dev中间件失败。错误为:错误:找不到模块“aspnet Webpack

我一直在努力寻找这个问题的答案,但没有结果。。我正在尝试使用命令行命令“dotnet publish”发布我的.Net Core 2.0&Angular项目。我成功发布了该项目,但是当我尝试在发布的文件夹中运行我的项目的.dll时,我的项目在开发环境中运行时会出现以下错误:

未处理的异常:System.AggregateException:发生一个或多个错误。(由于加载“aspnet Webpack”时出错,Webpack dev中间件失败。错误为:错误:找不到模块“aspnet Webpack”

当在生产环境中运行并且允许使用DeveloperExceptionPage(如下面我的statup.cs所示)时,.netcore应用程序运行,但在实际的web应用程序中崩溃,我认为这是由于更大的错误,即找不到aspnet webpack:

NodeInLocationException:Uncaught(承诺中):错误:找不到HomeComponent的组件工厂。是否将其添加到@NgModule.entryComponents

Startup.cs

public class Startup
{
    public Startup(IConfiguration configuration)
    {
        Configuration = configuration;
    }

    public IConfiguration Configuration { get; }

    // This method gets called by the runtime. Use this method to add services to the container.
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddMvc();
    }

    // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
            app.UseWebpackDevMiddleware(new WebpackDevMiddlewareOptions
            {
                HotModuleReplacement = true
            });
        }
        else
        {
            //app.UseExceptionHandler("/Home/Error");
            app.UseDeveloperExceptionPage();
        }

        app.UseStaticFiles();

        app.UseMvc(routes =>
        {
            routes.MapRoute(
                name: "default",
                template: "{controller=Home}/{action=Index}/{id?}");

            routes.MapSpaFallbackRoute(
                name: "spa-fallback",
                defaults: new { controller = "Home", action = "Index" });
        });
    }
}
我没有使用
@Angular/Cli
,但我使用的是VS2017(我相信是八月更新?)生成的默认Angular项目,它似乎只使用Webpack。问题似乎是项目的生产配置需要一个我没有提供的参考,但我不明白为什么会这样

到目前为止,这个问题没有其他答案对我有帮助,因此如果这是一个重复的问题,我很抱歉。

我对“
aspnet webpack
有同样的问题。”,这是在项目开发的中途引入的,所以我有点惊讶地看到解决方案突然死亡。它在IIS上运行了好几个月,但突然无法启动

IIS日志文件没有帮助,所以我尝试了两种方法来解决这个问题,其中一种有效。快点

解决方案 我在“包管理器”窗口上运行了以下命令:

dotnet run --project <Full path of *.csproj> --configuration Debug
dotnet运行--项目--配置调试
它给了我一些提示,我开始搜索“
错误:找不到模块'aspnet webpack
”问题。我尝试检查了最近几次签入的所有更改,发现我们更新了“
Microsoft.AspNetCore.all
”从
2.0.0
2.0.3
版本,因此将其降级到原始版本修复了它

我猜它们都使用不同版本的节点包。因此,除非有很好的理由,否则不要为了方便而更新。在这方面,一些位与特定版本紧密耦合,如果有什么变化,很容易断开。尽管我已经设法将节点版本升级到最新的5.0.0


我很想找到更多详细信息,但目前还没有关于为什么需要特定版本的详细信息。

发布.Net Core 2.0&Angular项目后,在运行该项目之前,需要确保环境变量ASPNETCORE\u environment未设置为Development。发布的项目不包括对WebpackDevMiddl的支持但如果环境设置为开发,它将尝试使用它们

每当源文件发生更改时,HotModuleReplacement会自动更新web浏览器中的Webpack内置资源(如JavaScript、CSS或图像)。这显然是您在生产中不希望看到的

如果ASPNETCORE_环境设置为“开发”,则可以通过以下方式更改设置:

setx ASPNETCORE_ENVIRONMENT "Production"
您需要关闭当前命令窗口并打开另一个窗口以查看更改

您还可以在startup.cs中注释掉以下代码以获得相同的结果:

#if DEBUG
app.UseWebpackDevMiddleware(new WebpackDevMiddlewareOptions
{
    HotModuleReplacement = true
});
#endif

检查node.js是否已在生产环境中安装并位于路径中

Node.js由webpack使用

还要检查您是否拥有最新版本的Node.js(4+)

参考:

Node.js的版本可以通过以下方式进行检查:

where.exe node.exe (Windows 7+)

which node.exe (linux bash)
当然,如果指向过时的Node.js


最好的

在一个没有角度的项目中,我得到了与您相同的错误:

未处理的异常:System.AggregateException:发生一个或多个错误。(Web包开发中间件因加载“aspnet Web包”时出错而失败。错误为:错误:找不到模块“aspnet Web包”

事实证明,这是一个简单的节点问题,我往往会忘记

npm install
请记住,npm命令需要在包含package.json文件的顶级目录中运行。我希望这能帮助像我一样有很多问题的人记住实际运行npm命令。感谢论坛提醒我:


确保已完全安装所有这些依赖项:

npm install webpack-hot-middleware --save-dev
npm install webpack-dev-middleware --save-dev
npm install aspnet-webpack --save-dev

在我的例子中,原因是SPA(在我的例子中是Vue)位于ClientApp文件夹中,并且
app.UseWebpackDevMiddleware
希望它位于项目根目录中

设置
ProjectPath
选项为我解决了这个问题

app.UseWebpackDevMiddleware(new WebpackDevMiddlewareOptions
  {
    HotModuleReplacement = true,
    ConfigFile = Path.Combine(env.ContentRootPath, @"ClientApp\node_modules\@vue\cli-service\webpack.config.js"),
    ProjectPath = Path.Combine(env.ContentRootPath, @"ClientApp")
  });

在startup.cs的configure函数中,您可以将if语句用于开发环境

 if (env.IsDevelopment())
        {
            // Print exception and all details for the developer 
            app.UseDeveloperExceptionPage();
            // Use WebPack to update css , js , html automatically 
            app.UseWebpackDevMiddleware(new WebpackDevMiddlewareOptions
            {
                HotModuleReplacement = true
            });  

        }
        else
        {
            app.UseExceptionHandler("/Error");
            // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
            app.UseHsts();

        } 
您可以使用此命令打印更改当前环境:
setx ASPNETCORE_环境“开发”

此错误的主要原因是您在代码中的某个地方使用了依赖项,而该依赖项未安装在您的解决方案中。如果您使用visual studio,请尝试使用clean build,它将显示项目中的错误,这将帮助您找到它。

有趣的是,我转到node.js应用程序,删除.Net核心组件e是的,但我计划很快重新实施,以再次尝试。我相信这样做会很有帮助,谢谢!我同意,更多细节会很好。我希望解决这个问题,就像你说的那样,从2.0.5降级到2.0.0,但我运气不好。我仍然会遇到同样的错误。@CarolinaBauque你能告诉我吗