我有一个针对.NET Standard 2.0的库。为了验证兼容性,我想使用 .NET Core 的当前版本和长期支持 (LTS) 版本运行单元测试。当写这个问题时,这些是:
| 目标框架 | 目标框架名称 (TFM) |
|---|---|
| .NET 5.0(当前) | 网络5.0 |
| .NET Core 3.1(LTS) | netcoreapp3.1 |
| .NET Core 2.1(LTS) | netcoreapp2.1 |
设置 csproj 文件以针对多个框架非常容易:
<PropertyGroup>
<TargetFrameworks>netcoreapp2.1;netcoreapp3.1;net5.0</TargetFrameworks>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)
当安装了所有这些 SDK 后,这对于本地构建非常有效。但是,我更喜欢在单个轻量级 Docker 容器上进行 CI 构建。我不担心验证 .NET Framework 支持,因此我不需要 Windows。Docker Hub 上的.NET SDK 映像适用于任何单一框架(即mcr.microsoft.com/dotnet/sdk:5.0),但我想找到一个包含所有这三个 SDK 的 Docker 映像,而无需承担以下负担: “厨房水槽”图像,例如GitHub 托管的运行程序,其中包含许多不相关的框架和工具。
我可以编写自己的Dockerfile,从基本映像开始并编写额外 SDK 的安装脚本,但我肯定不是唯一可以使用此类内容的人。某个地方是否已经存在合适的 Docker 镜像?我是否应该采取不同的方法来解决这个问题,例如使用setup-dotnet或等效方法编写 SDK 安装脚本?
我正在使用WiX 3.7来构建MSI.当我构建我的*.wixproj项目时,我收到以下错误:
error LGHT0204: ICE24: ProductVersion: '2014.1.1.4' is an invalid version string.
Run Code Online (Sandbox Code Playgroud)
我的公司使用了一种不寻常的版本控制惯例,其中发行年份是主要版本.但根据这篇博客,
版本字符串的格式为xxxxx.xxxxx.xxxxx.xxxxx,其中x是数字.可接受的最大版本字符串为65535.65535.65535.65535.
如果这是真的,那么为什么ICE24会触发此产品版本?
我最近遇到了一个问题,我们正在运行一个数据迁移脚本,以通过Oracle DBLink将数据从SQL Server迁移到Oracle 10g。一切正常,直到我们在生产Oracle环境中运行脚本为止。对于在SQL Server中定义为tinyint的某些列,我们发现SQL Server数据库中大于127的值现在为负值(比原始值小256)。为什么该脚本在开发和测试数据库中起作用,而在生产中却不起作用?