首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单击一个报表查看器错误

单击一个报表查看器错误
EN

Stack Overflow用户
提问于 2015-03-30 14:27:25
回答 2查看 531关注 0票数 0

我设置

代码语言:javascript
复制
Microsoft System CLR Types for sql server 2012 x86 
Microsoft System CLR Types for sql server 2012 x64

在单击一次部署时作为先决条件。它在x64机器上似乎工作得很好,但是它在x32位机上崩溃,下面的消息如下所示。想知道我该怎么解决这个问题?

server 2012 x64组件Microsoft类型安装失败,错误消息如下:“此处理器类型不支持此安装包。请与产品供应商联系。”

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

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

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-03-30 14:34:06

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

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

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

票数 1
EN

Stack Overflow用户

发布于 2015-03-30 14:31:09

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

这是如何检查机器从C#中运行的类型

代码语言:javascript
复制
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;
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29348860

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档