• vs2008与vs2005的冲突


    http://subject.csdn.net/vs2008.htm

    在没有按照vs2008前开发的web程序安装了vs2008后(准确的说应该是Microsoft .NET Framework SDK v3.5),在编译时会有警告:警告 CS1701: 假定程序集引用“System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”与“System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”匹配,您可能需要提供运行时策略
    预编译完成。
    而且 在没有安装NET Framework SDK v3.5的服务器上会运行不了。
    Microsoft MSDN上对于该警告的帮助是这样提示的:

    Visual C# 参考:错误和警告
    编译器警告(等级 2)CS1701

    错误消息

    假定程序集引用“Assembly Name #1”与“Assembly Name #2”匹配,您可能需要提供运行时策略

    这两个程序集在发行号和/或版本号上有差异。为保证一致,必须在应用程序的 .config 文件中指定指令,并提供程序集的正确强名称,如以下代码示例所示。

    示例

    下面的多文件示例使用两个不同的外部别名引用一个程序集。第一个示例生成用于创建程序集 CS1701_d 的代码的较早版本。

    // CS1701_a.cs
    // compile with: /target:library /out:cs1701_d.dll /keyfile:mykey.snk
    using System.Reflection;
    [assembly:AssemblyVersion("1.0")]
    public class A {
    public void M1() {}
    }
    public class C1 {}

    这是创建较新版本的程序集 CS1701_d 的代码。注意,由于这两个版本的输出文件同名,需要将较新版本编译到不同于较早版本的目录中。

    // CS1701_b.cs
    // compile with: /target:library /out:c:\\cs1701_d.dll /keyfile:mykey.snk
    using System.Reflection;
    [assembly:AssemblyVersion("2.0")]
    public class A {
    public void M2() {}
    public void M1() {}
    }
    public class C2 {}
    public class C1 {}

    此示例设置外部别名 A1 和 A2。

    // CS1701_c.cs
    // compile with: /target:library /reference:A2=c:\\cs1701_d.dll /reference:A1=cs1701_d.dll
    extern alias A1;
    extern alias A2;
    // using System;
    using a1 = A1::A;
    using a2 = A2::A;
    public class Ref {
    public static a1 A1() { return new a1(); }
    public static a2 A2() { return new a2(); }
    public static A1::C1 M1() { return new A1::C1(); }
    public static A2::C2 M2() { return new A2::C2(); }
    }

    此示例使用 A 的两个不同别名调用方法。下面的示例生成 CS1701。

    // CS1701_d.cs
    // compile with: /reference:c:\\CS1701_d.dll /reference:CS1701_c.dll
    // CS1701 expected
    class Tester {
    public static void Main() {
    Ref.A1().M1();
    Ref.A2().M2();
    }
    }
    最终还是找到了解决该问题的方法,出现该问题主要是应该安装.net 3.5后,会自动默认安装3.5的来编译。
    你可以运行下面一段批处理文件:
    @ECHO OFF
    ECHO Disabling publisher policy for System.Web.Extensions.
    IF EXIST %windir%\assembly\GAC_MSIL\policy.1.0.System.Web.Extensions\3.5.0.0__31bf3856ad364e35\policy.1.0.System.Web.Extensions.cfg (
        REN %windir%\assembly\GAC_MSIL\policy.1.0.System.Web.Extensions\3.5.0.0__31bf3856ad364e35\policy.1.0.System.Web.Extensions.cfg policy.1.0.System.Web.Extensions.cfg.disabled
        IF ERRORLEVEL 1 (
            ECHO On Windows Vista this script must be run as administrator.
            GOTO :END
        )
    )
    ECHO Disabling publisher policy for System.Web.Extensions.Design.
    IF EXIST %windir%\assembly\GAC_MSIL\policy.1.0.System.Web.Extensions.Design\3.5.0.0__31bf3856ad364e35\policy.1.0.System.Web.Extensions.Design.cfg (
        REN %windir%\assembly\GAC_MSIL\policy.1.0.System.Web.Extensions.Design\3.5.0.0__31bf3856ad364e35\policy.1.0.System.Web.Extensions.Design.cfg policy.1.0.System.Web.Extensions.Design.cfg.disabled
        IF ERRORLEVEL 1 (
            ECHO On Windows Vista this script must be run as administrator.
            GOTO :END
        )
    )
    :END
    PAUSE
  • 相关阅读:
    02树莓派刷入系统
    Debian stretch更换国内源
    C#-WebForm-点击网页中的按钮后跳转到其他页面是怎么实现的?
    C#-WebForm-WebForm开发基础、如何给控件注册事件?——事件委托写法、http无状态性、三层结构
    C#-WebForm-表单元素
    C#-WebForm-ASP开发练习:从数据库中动态添加信息
    C#-WebForm-WebForm开发基础
    C#-WinForm-TextBox中只能输入数字的几种常用方法(C#)
    C#-和时间有关的计算代码、时间相减 得到天数、小时、分钟、秒差
    C#-WinForm-用户控件如何获取父级窗体
  • 原文地址:https://www.cnblogs.com/godwar/p/979477.html
Copyright © 2020-2023  润新知