在从VS2015发布后,DNX Web命令抛出“无法解析项目”错误

11

这是关于一种已过时的预发布版本的 .net core。

我使用Visual Studio 2015的beta/preview创建了一个基本的ASP.Net 5项目(后来更名为asp.net core),我将该项目发布到文件系统并尝试使用以下命令从那里运行:

    dnx . web

出现的错误是“无法解析项目”。我已经检查了dnvm是否使用了默认框架。我的发布目录包括web、web.cmd、wwwroot 和 approot文件夹。还有其他需要检查的吗?

我正在使用:asp.net core 1.0.0-beta4 clr


你是在拥有 project.json 文件的文件夹中运行命令吗? - Kiran
实际上,我并不是这样认为的。我假设它需要从发布路径的根目录运行,因为那是 web 命令最终到达的位置。在发布后,包含 project.json 的文件夹位于 src 文件夹下面,这听起来对吗? - Stradosphere
看起来它已经启动了Web服务器,但是没有提供任何服务。现在我只是尝试提供一个静态的index.html文件,它实际上使用哪个文件夹作为Web服务器的根目录?是approot还是wwwroot文件夹? - Stradosphere
好的,没事了,我已经解决了。所有东西都是从wwwroot提供的,但你需要从approot文件夹中启动DNX Web命令,在其中包含有你的project.json文件的任何子文件夹中。看起来有点别扭,但现在它可以工作了,感谢你的帮助Kiran。 - Stradosphere
相关:http://stackoverflow.com/questions/33675952/dnx-web-on-ubuntu-14-04-throws-system-runtime-interopservices-marshal-exceptio - Warren P
2个回答

27

对于ASP.NET Core项目,与其从解决方案目录运行,您应该进一步进入几个文件夹。

例如,如果我在解决方案目录,我会遇到与您相同的错误。

/home/myname/AspNetWebApplication <-- 解决方案根目录

相对于

/home/myname/AspNetWebApplication/src/AspNetWebApplication <-- 项目根目录

对于我的设置,仍有更多问题,因为我收到“错误:无法加载应用程序或执行命令”。

在早期的beta和RC1版本中,dnx webdnx kestrel是要运行的命令,并且在我的情况下不需要您输入的点号。在1.0 rtm中,dotnet run是从项目源目录运行的命令,而dotnet <yourassemblynamehere>.dll是运行您的二进制文件的命令,请用YOUR主二进制组件的名称替换<yourassemblynamehere>。

最好检查工具(dnx或dotnet)是否在路径中,并且已按照ASP.NET Core安装说明安装环境。


感谢您。这对我也起作用,但有没有一种方法可以从解决方案根目录开始呢? - Moddaman
制作批处理文件(Windows)或Shell脚本(Linux)?cd项目目录,然后dnx web。 - Warren P
谢谢您的指导,帮助我让它正常工作了。关于dnx命令:如果您键入dnx web,则实际上是使用子命令web启动dnx。可用的子命令在project.json文件中定义,该文件与您启动应用程序的文件夹相同。我猜Web是默认模板,但您可以更改它并将其设置为任何命令。 - Maarten Kieft
那很有道理。因此,您可以编写自己的单元测试来运行,或者进行一些部署时间任务或诊断。 - Warren P

-1

许多 DNX 命令似乎只在应用程序中的“预期”文件夹中运行。例如,使用 SQL 脚手架必须直接位于 models 文件夹中,否则会出现问题。

输入图片描述


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接