gpt4 book ai didi

ASP.Net 5 IIS : Failed to resolve the following dependencies

转载 作者:行者123 更新时间:2023-12-04 20:37:38 26 4
gpt4 key购买 nike

我有一个使用多个非 DNX 类库的 ASP.Net 5 MVC 6 项目。这些库通过 dnu wrap 包装,所有作品都可以在 IIS Express 或自托管应用程序上找到。但是在 IIS 8 上它显示错误

Failed to resolve the following dependencies for target framework 'DNX,Version=v4.5.1': list of my projects

Current runtime target framework: 'DNX,Version=v4.5.1 (dnx451)' Version: 1.0.0-beta7-15532 Type: CLR Architecture: x64 OS Name: Windows OS Version: 6.3.9600.0



如果我使用 dnx 4.6(我只是降级以查看它是否适用于 4.5.1),也会出现同样的错误。

但是,可以在以下位置找到库:approot\packages\
具有正确的 nuget 包结构(dnu 发布打包它们)

那么如何帮助 IIS 找到我的库呢?

重现步骤:
  • 使用 2 个项目创建解决方案:新的 ASP.Net MVC 应用程序和常用类库(非包)
  • 通过 dnu wrap 包装类库
  • 来自MVC的引用类库
  • 发布 Web 应用程序(如果从 Visual Studio 发布不起作用,请使用 dnu publish --runtime active)
  • 在 IIS 中创建网站并将其指向已发布 Web 应用程序的 wwwroot 文件夹

  • 更新:
    原来问题不在于IIS本身,而在于DNX。如果我发布网站然后通过 Microsoft.AspNet.Server.WebListener 运行它,我会得到同样的错误。看起来 dnu publish 不能与包装的项目正常工作。

    但是,在运行 Windows 服务时情况并非如此。我有一个引用相同库的控制台应用程序(包),我使用 --no-source 发布它,然后通过 sc.exe 将其安装为 Windows 服务,并且一切正常。

    最佳答案

    我的问题是在 project.json 中我有没有库版本的引用,只有一个空字符串。它在 Visual Studio 下工作,但在没有 VS 的情况下运行时不起作用。
    我有这样的引用,因为在 RC 中我无法添加引用 vie 上下文菜单,所以我手动添加了它并且它起作用了。
    所以这里是如何设置网站在 IIS 下运行的步骤:

    1) 用“dnu wrap”命令包装你的非 DNX 项目

    2) 将来自 DNX 项目的引用添加到您的非 DNX 项目,并检查您在 project.json 中的版本是否正确(应该与 wrap\yourproject\project.json 中的版本相同)。下面是一个例子:

    "frameworks": {
    "dnx46": {
    "dependencies": {
    "MyLib": "1.0.0-*"
    }
    }

    3) 使用 dnu publish 发布您的网站
    dnu publish .\src\Web --out <outputfolder>

    4) 使用运行时参数再次发布。这次运行时被复制到输出文件夹。但是这次没有创建 wwwroot 文件夹,好在我们已经在第 3 步中运行了发布 ;-)。您可以更改步骤 3 和 4 的顺序
    dnu publish .\src\Web --out <outputfolder> --runtime dnx-clr-win-x64.1.0.0-beta7
    5) 转至 outputfolder\wwwroot\web.config并在 appsettings 中输入 2 个参数的值:dnx-version 和 dnx-clr。这是示例:
    <appSettings>
    <add key="bootstrapper-version" value="1.0.0-beta7" />
    <add key="runtime-path" value="..\approot\runtimes" />
    <add key="dnx-version" value="1.0.0-beta7" />
    <add key="dnx-clr" value="clr" />
    <add key="dnx-app-base" value="..\approot\src\Web" />
    </appSettings>

    6) 在 IIS 中创建新网站,选择运行时为 .Net v4.0 的应用程序池

    7) 将您的新网站指向 outputfolder\wwwroot 文件夹

    8) 检查一切是否正常

    关于ASP.Net 5 IIS : Failed to resolve the following dependencies,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32397192/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com