【问题标题】:How to Reference .xproj into .csproj?如何将 .xproj 引用到 .csproj?
【发布时间】:2016-07-14 08:33:33
【问题描述】:

我有.csproj 项目,我想引用.xproj 的其他项目,一切看起来都很好,但是当我尝试构建解决方案时,我不能,因为.dll 丢失了。当我从\bin\release\net452\... 本身引用.dll 时,一切正常。如何解决?

编辑:我不是在寻找解决方法 - 现在我正在使用带有 gulp.move() 的 gulp。它工作正常,但感觉很脏......

【问题讨论】:

  • 也遇到了同样的问题...我确信它在某些时候可以正常工作,但现在它拒绝发挥良好的作用。

标签: c# asp.net .net asp.net-core projects-and-solutions


【解决方案1】:

不能直接从 csproj 引用 xproj。

您有两种可能的解决方案。

A) 将 xproj 部署为 NuGet 包并在您的 csproj 中使用 NuGet 包。

B) 将您的 csproj 转换为 xproj。

注意:xproj 必须支持您使用的 .NET csproj。 net451等

这是一个引用 xproj NuGet 包的 csproj 示例

https://github.com/damienbod/ElasticsearchCRUD/tree/master/samples/ConsoleElasticsearchCrudExample

【讨论】:

  • 有一点是可能的。我知道很多解决方法。但我不是在寻找它。只有我批准的东西是编辑 project.json 等。遗憾的是,他们缺少这方面的选项。所以现在我们正在使用 gulp tasker。
【解决方案2】:

XProj 已死。使用可移植类库 (csproj),然后将其设置为 .NET Standard 和要用于兼容性的级别。然后 project.json 将被创建(稍后可能会被重命名)并且 csproj 将仍然存在,从而使添加引用变得容易并且它只是工作。

如果您需要交叉兼容性,唯一的方法是执行上述操作,然后在 .NET Core 解决方案的情况下添加现有项目并选择 project.json 文件而不是 .csproj。这也将创建 xproj。但是请注意,xproj/project.json 将支持多目标,但 .csproj 不支持,如果您尝试,您将破坏项目属性的 UI。 (它仍然有效,但 UI 已死)

您唯一的其他选择是绑定到 dll 而不是项目。您可以使用 xproj,放入目标,然后添加引用并使用浏览选择 dll。

【讨论】:

  • 请详细说明一下
  • 那对细节有帮助吗?
  • 你还能用这种方法定位多个框架吗?
  • 是的。 csproj 只能针对便携式或全脂 .NET。 xproj 可以针对任何你想要的东西。截至昨天,VS.net 2017 RC 将 xproj 转换为可以多目标的 csproj。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-07-31
  • 1970-01-01
  • 2017-08-07
  • 2018-04-07
  • 1970-01-01
  • 1970-01-01
  • 2015-01-17
相关资源
最近更新 更多