将dnx引用为nuget包

时间:2015-07-16 14:56:30

标签: asp.net-core

我尝试将dnx作为nuget包引用。 要做到这一点,我在我的project.json中包含dnx-clr-win-x64和dnx-clr-win-x86包。

"dependencies": {
  ...
  "dnx-clr-win-x64": "1.0.0-beta4",
  "dnx-clr-win-x86": "1.0.0-beta4"
}

并在web.confing中将runtime-path设置设置为packages目录。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <appSettings>
    ...
    <add key="runtime-path" value="../../packages" />
  </appSettings>
</configuration>

在我的packages目录中,我有dnx-clr-win-x64个目录和dnx-clr-win-x86个子目录。

但是当我试图运行我的应用程序时,我收到了错误:

  

无法加载文件或程序集&#39; dnx.clr.managed&#39;或其中一个   依赖。系统找不到指定的文件。

似乎AspNet.Loader.dll搜索目录名为1.0.0-beta4。但包存储在dnx-clr-win-x64.1.0.0-beta4

如果我在dnx-clr-win-x64/1.0.0-beta4目录中创建目录dnx-clr-win-x64.1.0.0-beta4并将packages复制到其中,则一切正常。

是否可以将dnx引用为nuget包?

1 个答案:

答案 0 :(得分:2)

根据您的问题和您对它的评论,答案是否定的。您不能引用DNX并将其作为NuGet引用拉出来,因为您有一个引导问题:您需要dnu(这是dnx的一部分)来下载NuGet包。

但是,您可以编写一个构建脚本,类似于我们(asp.net团队)所做的:https://github.com/aspnet/Configuration/blob/dev/build.cmd

基本上,你为了获取dnx所做的所有构建脚本都是:

  1. 获取dnvm
  2. 致电dnvm install <version>
  3. 此外,如果您不想全局使用dnx,则可以将DNX_HOME环境变量设置为指向其他文件夹。