加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 带有用Angular2编写的部分的ASP.NET MVC项目:使

发布时间:2020-12-16 09:32:47 所属栏目:asp.Net 来源:网络整理
导读:好吧,它可能是一个奇异的组合…… 介绍 我有一个现有的ASP.NET MVC 5项目. 它包含一个私人“管理”区域.我打算改变这个区域将其迁移到Angular2(WebAPI):) 由于一些业务需求,我无法更改原始“主”网站的体系结构(将管理部分分成另一个网站),因此我必须在其中
好吧,它可能是一个奇异的组合……

介绍

我有一个现有的ASP.NET MVC 5项目.
它包含一个私人“管理”区域.我打算改变这个区域将其迁移到Angular2(WebAPI):)

由于一些业务需求,我无法更改原始“主”网站的体系结构(将管理部分分成另一个网站),因此我必须在其中托管以Angular2编写的新“管理”区域.

主网站网址:http://www.example.com
管理区域网址:http://www.example.com/admin

Visual Studio项目也是如此:
我创建了一个文件夹“admin”并将所有Angular2内容放入其中.

一切正常……

问题

我的ASP.NET项目使用MvcBuildViews参数在Release模式下构建MVC视图.

现在,当我在发布模式下运行构建时,我收到此错误:

node_modulesselenium-webdriverlibtestdataweb.config(29): error
ASPCONFIG: It is an error to use a section registered as
allowDefinition=’MachineToApplication’ beyond application level. This
error can be caused by a virtual directory not being configured as an
application in IIS.

这个错误对我没有意义……

MSBUILD分析了“node_modules”中的web.config文件.
在“npm install”之后,在项目根文件夹中创建了node_modules文件夹(准备angular2的东西是必需的).

msbuild应该忽略这些文件夹…恕我直言

HEY … node_modules它不包含在VS项目中. MSBUILD正在扫描文件夹,因为它只出现在项目中…

WORKAROUNDS

>放弃MvcBuildViews ……但我认为这个设置对于在开发阶段检测错误非常有用
>隐藏node_modules文件夹.这是我正在使用的当前解决方法.我在“$(ProjectDir)node_modules”中添加了这个预构建事件

其他解决方案?
我用Google搜索没有成功……

解决方法

我最近遇到了同样的问题.我在以下文章中找到了此问题的解决方案:

Excluding node_modules folder from ASP.NET compilation

本文建议替换csproj中的AspNetCompiler任务,以直接调用支持排除文件夹的aspnet_compiler.exe.在本文中,它通过硬编码该.exe文件的路径来实现.对于大多数情况,这是好的.

您还可以使用$(FrameworkDir)和$(FrameworkVersion)来避免对路径进行硬编码,或者如果您不确定aspnet_compiler.exe可能位于何处:

<Target Name="MvcBuildViews" AfterTargets="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
    <Exec Command="$(FrameworkDir)$(FrameworkVersion)aspnet_compiler.exe -v temp -p $(WebProjectOutputDir) -x node_modules"/>
</Target>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读