如何将 Bridge.net 添加到我现有的 C# 项目中?

How can I add Bridge.net to my existing c# project?

我目前正在尝试添加 Bridge.net 以从 saltarelle 升级。该项目使用 .net framework 2.0,所以我下载了 Bridge 版本 1.12.0。我目前遇到编译器检测更新的 Bridge 属性的问题。

我从 nuget 包管理器下载了 Bridge。我已经尝试清理和重建项目,但它仍然无法识别 Bridge.net 属性。

    /// <summary>
    /// Gets or sets Items to add
    /// </summary>
    [Field]
    [DataMember]
    [SuppressMessage("Microsoft.Performance", "CA1819", Justification = "The object is a POCO, the fact that the array is writable is irrelevant.")]
    public UpdateData[] Items
    {
        get;
        set;
    }

未检测到字段属性。

我目前收到以下错误: 错误 CS0246 找不到类型或命名空间名称 'Field'(是否缺少 using 指令或程序集引用?)

虽然我没有看到明确的指示说明自版本 1.13.0 以来是什么确切的变化触发了 Bridge 中的此 .NET Framework 限制,但 Bridge 从未打算在针对 .NET Framework v2(而不是 v1)的项目下工作还有)。

然而,在 versions 1.12.1 and 1.13.0 之间,NuGet 包按照现在的层次结构进行了重新排列(引入了 Bridge.Core、Bridge.Min 和其他从主 Bridge 中提取的包一)。这可能触发了 NuGet 在 .NET v2 项目中安装时识别此问题的方法,而不是仅仅获取未完成的引用。

也就是说,Bridge 一直被设计为重现 .NET Framework 4(低至 4.8.0),并在可能的情况下蓬勃发展以重现整个实现。但是没有专注于 v2 的 Bridge 版本,因此 Bridge 不支持 .NET Framework 项目格式。

不要失去所有希望,这并不一定意味着它不应该起作用。如果你自己做一些。一个偶然的机会,昨天我们在社区中有人分享了 .NET 2 project that claimed to output a simple "Hello World" with Bridge 17.9.0。它是通过创建一个 .NET 4 项目然后切换到 .NET 2(gitter 中的 public 消息)来完成的。我看到该项目已在回购协议中复制并提交了 Bridge.dll 文件,因此可能还需要让 Bridge 在这种情况下工作。

万一消息在 gitter 中变得不可用,这里是抄本:

@Jpard6991 i was looking at it, i just changed the .net framework in the bridge library to 2 using nodepad++ then removed the reference to the bridge.dll and re-added that dll. changed to target .Net Framework 2.0 i got it to and show hello world.

https://github.com/samuelGrahame/DotNetFramework2

请注意,Bridge 的 mscorlib 实现可能与 .NET Framework 的实现不匹配,如果两个版本之间的任何方法或 类 参数不同,Bridge 项目将使用 .NET 4 语法而不是在这种情况下为 2。