引用dotnetcore classlib中的共享项目,并在windows和linux上构建工作

时间:2017-06-14 12:51:53

标签: linux windows .net-core shared-project asp.net-core-cli

我的目标是从dotnetcore类库中引用共享项目。

为了做到这一点,我在Windows上的visual studio 2017中打开了我使用.NET命令行工具(1.0.4)在linux上制作的解决方案,因为我读到vs2017支持对shprojs的引用。所以我使用vs添加了一个引用,并将此行添加到.netcore库csproj文件中:

<Import Project="..\Objects\LogoRecognitionShared.projitems" Label="Shared" />

此时我认为一切都会完美运作。我在视觉工作室中构建它并且没有问题。我认为,因为我的cli版本在windows和linux上是相同的,所以项目将以相同的方式构建并支持相同的功能。

然而,当我在linux上尝试这些更改时,我收到了一堆“error CS0246: The type or namespace name 'TypeName' could not be found (are you missing a using directive or an assembly reference?)”消息。

我也使用<Compile Include="..\Objects\*.cs"/>语句并得到了同样的错误。但是,如果我同时使用它们,那么我会得到warning CS2002: Source file 'Objects/*.cs' specified multiple times

我不确定如何解决此问题。在我看来,构建过程知道应该将这些文件构建到输出中,但是当构建实际发生时,它会将它们遗漏并且已经破坏了引用。

任何帮助都会很棒。

1 个答案:

答案 0 :(得分:1)

我认为发现了导致我的问题的原因。我的一个共享项目的RootNamespace值不正确。所以我从vs2017纠正了它,然后做了一个干净的构建,令我惊讶的是它在linux上工作......