使用Linux上的Mono构建VS 2017 MSBuild csproj项目

使用Linux上的Mono构建VS 2017 MSBuild csproj项目,第1张

概述我有 .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.C 我有 .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):
error MSB3644: The reference assemblIEs for framework
“.NETFramework,Version=v4.5” were not found. To resolve this,install
the SDK or targeting Pack for this framework version or retarget your
application to a version of the framework for which you have the SDK
or targeting Pack installed. Note that assemblIEs will be resolved
from the Global Assembly Cache (GAC) and will be used in place of
reference assemblIEs. Therefore your assembly may not be correctly
targeted for the framework you intend.

Mono不支持基于VS 2017 MSBuild的csproj项目吗?如何构建我的项目?

解决方法 据我所知,这里有两种选择:

>使用this issue中所述的FrameworkPathOverrIDe环境变量指向它们.
>将Travis构建限制为仅针对.NET Core构建.根据我的经验,这简单得多.

这是Noda Time .travis.yml文件,当我可以迁移时,我将在Noda Time使用它 – 至少可以说它是初步的,但它确实构建了……

language: csharpmono: nonedotnet: 1.0.1dist: trustyscript:  - dotnet restore src/NodaTime  - dotnet restore src/NodaTime.Test  - dotnet restore src/NodaTime.Serialization.Test  - dotnet build src/NodaTime -f netstandard1.3  - dotnet build src/NodaTime.Test -f netcoreapp1.0  - dotnet build src/NodaTime.Serialization.Test -f netcoreapp1.0  - dotnet run -p src/NodaTime.Test/*.csproj -f netcoreapp1.0 -- --where=cat!=Slow  - dotnet run -p src/NodaTime.Serialization.Test/*.csproj -f netcoreapp1.0

关于此的几点说明:

>与早期的SDK不同,我们现在需要单独恢复每个项目 – 顶级没有大的“dotnet恢复”:(
>当我没有在dist上运行时,我感到很惊讶:xenial,但事实并非如此. (它声称环境不支持.NET Core.)我猜这会改变.
>我们正在使用NUnit,目前在新SDK中测试的唯一方法是使用NUnitlite,因此运行dotnet运行测试
>我有点惊讶我不能只指定dotnet运行的目录名称(根据dotnet restore和dotnet build),但这似乎是事情的方式.我会找一个BUG报告……

在任何一种情况下,我都建议使用基于windows的CI构建来检查所有内容是否在windows上构建和运行(理想情况下测试您支持的每个框架).

总结

以上是内存溢出为你收集整理的使用Linux上的Mono构建VS 2017 MSBuild csproj项目全部内容,希望文章能够帮你解决使用Linux上的Mono构建VS 2017 MSBuild csproj项目所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1047369.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存