首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.NET核心参考类型项目不工作

.NET核心参考类型项目不工作
EN

Stack Overflow用户
提问于 2016-10-13 17:31:10
回答 1查看 1.6K关注 0票数 3

我在项目参考和.NET核心方面有问题。

我在src文件夹中有一个库(MyLib),在测试文件夹中有两个项目(MyLib.TestsMyLib.Tests.Support)。

摘要:

代码语言:javascript
复制
|-- global.json
|-- src
|   \-- MyLib
\-- test
    |-- MyLib.Tests
    \-- MyLib.Tests.Support

MyLib已经可以通过NuGet获得,并且测试项目不是(将来也不会)。

当我(使用right click > add reference选项)在MyLib.Tests中引用MyLibTest.Support时,dotnet-restore可以正常工作。在visual中,在"References“下,我有一个小图标,表示它是一个项目引用。当我在right click > add reference中引用MyLib (仍然使用MyLib.Tests选项)时,dotnet-restore也可以正常工作,但是我有一个小图标表示它是nuget引用。

这是预期的行为,但我不希望我的测试项目测试“旧”NuGet包,但是测试实际的代码。

根据文档和我在互联网上找到的大量教程,然后我在MyLib.Tests\project.json中将MyLib依赖项配置为项目依赖项:

代码语言:javascript
复制
{
  "dependencies": {
      "NETStandard.Library": "1.6.0",
      "SimpleDao": {
        "target": "project"
        "version": "2.0.0-*"
      },
      "MyLib.Tests.Support": "1.0.0-*"
  }
}

但是,dotnet-restore失败了:

  1. Visual错误:NU1001 The dependency MyLib could not be resolved.
  2. 控制台错误:Unable to resolve 'MyLib' for '.NETStandard,Version=v1.6'

这是我的global.json:

代码语言:javascript
复制
{
  "projects": [ "src", "test" ],
  "sdk": {
    "version": "1.0.0-preview2-003131"
  }
}

问我任何可能相关的事情来解释我的烦恼

提前谢谢。(请原谅我的英语,我不是说英语的人)

编辑:

我意识到我的库也有问题:实际上MyLib是由三个库组成的:

  1. MyLib,主要是接口,延迟.netstandard1.1
  2. MyLib.Impl1,第一个实现,获取.net451.netstandard1.3 (尚未在NuGet上)
  3. MyLib.Impl2,第二个实现,targetting .net45 (在NuGet上已经有了第一个版本)

总是使用相同的方法来添加引用(right click > add reference)。I没有编辑project.json文件(两者都添加了这样的引用:"MyLib":"2.0.0-*")。

在第一个实现中,visual通过NuGet获取依赖项( references选项卡中有NuGet图标)。而且我在MyLib的界面上没有最新的编辑。

在第二个实现中,visual studio获取项目中的依赖项( references选项卡中有项目图标),我在接口上进行了最新的编辑。

如果我尝试编辑project.json以将依赖项配置为MyLib作为项目依赖项,我也无法恢复包,错误与测试相同.

它是.NET核心中的一个bug (我试图使用Visual和dotnet进行恢复)还是我做错了什么?

编辑3: i已经在NuGet上发布了MyLibMyLib.Impl2的预发行版。我删除了那些版本,然后回到我的解决方案。现在,MyLib.Impl1MyLib.Impl2正在正确地获取我的项目引用(对于MyLib.Impl1,我必须在project.json中指定目标,而不是MyLib.Impl2。我不知道为什么,但至少现在起作用了。

但我还是无法修复我的测试项目。它还是不想使用项目参考..。

编辑2:

这里是我的github存储库,您可以在这里找到我的全部代码(在迁移分支中)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-31 11:31:57

嗯,这是个艰难的决定.

我正在将我的库从完整的.NET移植到.NET核心,在这个过程中,我错误地命名了一个项目(大小写问题)。我用正确的大小写重命名了它,但是我没有在.sln中更改任何东西。

当我在另一个项目中添加此项目作为引用时,Visual使用的是来自.sln的olg未更改的名称,而不是当前的名称。

当出现这样的案例问题时,在NuGet上找到引用似乎比在本地项目上更容易.

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40027431

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档