【发布时间】:2017-08-02 12:43:10
【问题描述】:
我有.NET Core projects 我正在尝试使用最新的 Mono 和 .NET Core 1.0.1 工具(基于 MSBuild 的 csproj 工具)在 Mac 和 Linux 上使用 Travis CI 构建。他们的目标是netstandard1.6.1、net45 和net461。我从Travis CI 得到的错误是:
/usr/share/dotnet/sdk/1.0.1/Microsoft.Common.CurrentVersion.targets(1111,5): 错误 MSB3644:框架的参考程序集 未找到“.NETFramework,Version=v4.5”。要解决此问题,请安装 此框架版本的 SDK 或 Targeting Pack 或重新定位您的 应用到您拥有 SDK 的框架版本 或已安装目标包。请注意,程序集将被解析 来自全局程序集缓存 (GAC) 并将用于代替 参考程序集。因此您的组装可能不正确 针对您想要的框架。
Mono 不支持基于 VS 2017 MSBuild 的 csproj 项目吗?如何构建我的项目?
【问题讨论】:
-
如果您以 .NET Framework 配置文件为目标,您应该使用 Windows (AppVeyor)。 Linux 上的 .NET Core 工具应该能够针对 .NET Core 配置文件进行编译。不需要 Mono,它不是 .NET Framework(提醒)。
-
@LexLi:当您想测试项目的 .NET Core 构建(至少)是否可以在 Linux 上运行时,这是一个非常糟糕的解决方案。我现在正面临这个问题......我希望我能够添加一个答案。
-
@JonSkeet 绝对是限制测试用例仅在 Windows 和 .NET Framework 上运行的糟糕解决方案。但是在这种情况下,Mono 没有资格替换 .NET Framework(因为它会给您的测试用例增加额外的怪异,我在开源项目中经常遇到这种情况)。
-
@LexLi:我不是建议使用 Mono。我建议想办法在 Linux 上构建/测试 .NET Core 部分。
-
@JonSkeet 这很公平。但我想知道微软如何为 Linux 提供必要的部分(Linux 上 .NET Framework 的引用程序集?),因为这不是一个小负担。
标签: msbuild asp.net-core mono .net-core travis-ci