【问题标题】:Click One Report Viewer Error单击一个报告查看器错误
【发布时间】:2015-03-30 22:43:15
【问题描述】:

我设置了

Microsoft System CLR Types for sql server 2012 x86 
Microsoft System CLR Types for sql server 2012 x64

作为 Click Once 部署的先决条件。它似乎在 x64 机器上工作正常,但它在 x32 位机器上崩溃,并显示以下消息。想知道如何解决这个问题?

用于 sql server 2012 x64 的组件 Microsoft CLR 类型安装失败,并显示以下错误消息: “此处理器类型不支持此安装包。请联系您的产品供应商。”

以下组件已成功安装: 用于 sql server 2012 x86 的 Microsoft System CLR 类型

未安装以下组件: Microsoft 报表查看器 2012 运行时

以下组件安装失败: 用于 sql server 2012 x64 的 Microsoft System CLR 类型

【问题讨论】:

    标签: c#


    【解决方案1】:

    如果您只想显示来自 C# 应用程序的报告,则您使用了错误的包。部署报表查看器组件的最简单方法是将它们包含在 ClickOnce 部署中。

    转到部署设置并转到“应用程序文件”选项卡,并将以“Microsoft.Report*”开头的程序集的部署状态切换为“包含”。

    请注意,我使用的是德国 Visual Studio - 我上面引用的标签实际上可能有不同的名称。

    【讨论】:

    • 我确实将这些设置为“包含”
    • 好吧,那你不用别的也没关系,不是吗?您不必更改项目先决条件的任何内容。至少我从来没有这样做过。
    • 我还需要 CLR 类型吗?
    • 谢谢老兄,让我摆脱困境
    【解决方案2】:

    那是因为您试图在 32 位机器上安装 64 位应用程序。在安装之前检查机器正在运行什么,然后设置安装所需的应用程序。

    这是您可以通过 C# 检查机器正在运行的类型的方法

    static bool is64BitProcess = (IntPtr.Size == 8);
    static bool is64BitOperatingSystem = is64BitProcess || InternalCheckIsWow64();
    
    [DllImport("kernel32.dll", SetLastError = true, CallingConvention = CallingConvention.Winapi)]
    [return: MarshalAs(UnmanagedType.Bool)]
    private static extern bool IsWow64Process(
        [In] IntPtr hProcess,
        [Out] out bool wow64Process
    );
    
    public static bool InternalCheckIsWow64()
    {
        if ((Environment.OSVersion.Version.Major == 5 && Environment.OSVersion.Version.Minor >= 1) ||
            Environment.OSVersion.Version.Major >= 6)
        {
            using (Process p = Process.GetCurrentProcess())
            {
                bool retVal;
                if (!IsWow64Process(p.Handle, out retVal))
                {
                    return false;
                }
                return retVal;
            }
        }
        else
        {
            return false;
        }
    }
    

    【讨论】:

    • 嗨,安装程序有没有办法检查?处理器类型总是不同的。
    猜你喜欢
    • 2013-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多