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

Posted

技术标签:

【中文标题】引用 dotnetcore classlib 中的共享项目,并在 windows 和 linux 上构建工作【英文标题】:Reference shared project in dotnetcore classlib, and have the build work on windows and linux 【发布时间】:2017-11-16 15:22:49 【问题描述】:

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

为了做到这一点,我在 windows 上的 Visual Studios 2017 中打开了我在 linux 上使用 .NET 命令行工具 (1.0.4) 制作的解决方案,因为我读到 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?)”消息。

我也使用了&lt;Compile Include="..\Objects\*.cs"/&gt; 语句并得到了同样的错误。但是,如果我同时使用两者,我会得到warning CS2002: Source file 'Objects/*.cs' specified multiple times

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

任何帮助都会很棒。

【问题讨论】:

【参考方案1】:

嗯,我想找到了导致我的问题的原因。我的一个共享项目的 RootNamespace 值不正确。所以我从 vs2017 纠正了它,然后做了一个干净的构建,令我惊讶的是它在 linux 上运行......

【讨论】:

以上是关于引用 dotnetcore classlib 中的共享项目,并在 windows 和 linux 上构建工作的主要内容,如果未能解决你的问题,请参考以下文章

Xamarin.ios引用第三方SDK

DotNetCore学习-1.读取Json配置并绑定到配置类实例

dotnetcore UserPasswordCredential 中的服务结构客户端身份验证不起作用

Natasha 编译单元

centos 7 部署 dotnetcore+Angular2 实践

从 DotNetCore 迁移到 NodeJS