在asp.net家维基 似乎表明,人们可以通过"bin"的包装增加当地生产的DLL(组件)的引用.但是,似乎project.json文件中可能只包含一个bin包装器.那么,添加对.net框架4.6和可移植库.net框架4.6编译的外部类库dll的引用的正确方法是什么?
BTW.这些DLL与ASP.Net项目不在同一个解决方案中.
小智 9
以下是wiki中"bin语法"的准确位置https://github.com/aspnet/Home/wiki/Project.json-file#bin-syntax-wrapping-a-dll
维基读到:
您可以创建一个项目,而不是编译,引用已编译的dll并生成包含该dll的包
请注意,使用"bin语法",您将创建一个使用包装的dll作为其输出的项目(而不是编译一些源代码以获取输出dll).您没有添加dll作为目标project.json的引用.
下面是当您想要添加对dll的引用时使用"bin语法"的正确方法的示例:
假设我们有:
要将ProjectA中的引用添加到ClassLibraryB.dll,我们需要创建一个包装ClassLibraryB.dll的包装器项目:
在ClassLibraryB文件夹中创建一个project.json,其内容为:
{
"frameworks": {
"dnx451": {
"bin": {
"assembly": "<path to ClassLibraryB.dll>"
}
}
}
}
Run Code Online (Sandbox Code Playgroud)大约一年后,我能够获得对包含并编译的非本地 dll 的引用。有一些遗漏和被误解的步骤需要遵循。
在过去一年的旅程中,我找不到任何以前命名的 DNX 实用程序版本。就在最近,我发现一篇文章说你必须运行 DNVM 来选择运行时的版本。完成后,DNX 的路径将放置在路径变量中。不要忘记此时启动 CMD(或 PowerShell)的新副本以获取新的环境变量。另请注意,.dnx 文件夹是隐藏文件夹,不会使用 dir 命令或在 Windows 资源管理器中显示,除非您已关闭隐藏隐藏文件夹。有关运行 DNVM 的更多讨论,请参阅Stack Overflow 问题“DNX 不起作用” 。
一旦 dnx 环境设置完毕,就可以运行 dnuwrapper。第一个问题是解决方案文件夹中必须有一个 global.json 文件。默认情况下不会创建此文件,并且其中应包含的内容的文档几乎不存在。该文件中需要包含最少的信息。
{
"projects": [
"web"
],
"sdk": {
"version": "1.0.0-rc1-update1",
"runtime": "clr",
"architecture": "x86"
}
}
Run Code Online (Sandbox Code Playgroud)
在我的示例中,web是解决方案中唯一项目的名称。其他的可以根据需要添加。创建后,将解决方案目录设为当前目录,然后发出 dnu wrap 命令。
dnu wrap full_path_to_an_assembly -f framework_version
Run Code Online (Sandbox Code Playgroud)
老实说,我并不完全确定框架版本可以/应该包含什么。我使用dnx461,因为这是我编译 dll 的框架版本。dnu 包装操作的输出将进入解决方案文件夹下的“wrap”文件夹,并且 global.json 文件将更新以在项目部分中包含包装项目(文件夹)。
由于这个过程似乎需要在每个新解决方案中包含多个 dll 进行大量工作,因此我手动创建了用于包装的 project.json 文件,并将它们放置在全局位置(就在普通 .net 程序集引用它们的旁边) )。然后,我将该文件夹的完整路径作为项目放置在 global.json 文件中,并且能够添加引用并进行编译。一个问题是,尽管支持相对路径,但对于它们的相对路径似乎也存在一些混乱。我必须在提供二进制包装的project.json 文件中包含二进制文件(和pdb)的完整路径。 用于包装二进制文件的示例project.json
{
"version": "1.0.0-*",
"frameworks": {
"dnx461": {
"bin": {
"assembly": "../../bin/log4net.dll"
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
注意上面相对路径的使用。这不能正常工作。将其更改为相关程序集的完整路径。
好消息是,一旦一切设置正确,Visual Studio 中的 project.json 依赖项部分的智能感知将在您输入时指示 dll 的名称。
| 归档时间: |
|
| 查看次数: |
6724 次 |
| 最近记录: |