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

问题描述:

我的目标是引用来自dotnetcore类库的共享项目。在dotnetcore classlib中引用共享项目,并在windows和linux上构建工作

为了做到这一点,我打开了我在windows上使用.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

我不确定如何解决此问题。在我看来,构建过程知道它应该将这些文件构建到输出中,但是当构建实际发生时,它会将它们留出并导致引用失效。

任何帮助将是太棒了。

嗯,我想知道是什么导致了我的问题。我的一个共享项目的RootNamespace值不正确。所以我从vs2017中纠正了它,然后做了一个干净的构建,让我惊讶它在linux上工作...