加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 程序设计 > 正文

.net – 错误:无法加载文件或程序集“ExcelAddIn1.XmlSerializers”或其中一个依赖项.该系统

发布时间:2020-05-27 09:46:16 所属栏目:程序设计 来源:互联网
导读:我有一个excel的加载项目.它在我的电脑上工作正常.但是,当我在客户端计算机上安装它时,它给了我提到的错误消息. 我使用project-发布了它属性 – 发布. 我已经勾选了“启用我的代码”. 我已清除’抛出’和’用户未处理’的’未找到文件异常’的刻度 我在客户端

我有一个excel的加载项目.它在我的电脑上工作正常.但是,当我在客户端计算机上安装它时,它给了我提到的错误消息.

>我使用project->发布了它属性 – >发布.
>我已经勾选了“启用我的代码”.
>我已清除’抛出’和’用户未处理’的’未找到文件异常’的刻度
>我在客户端上使用项目文件夹中“publish”文件夹中的“setup”文件设置项目.
>在发布 – >先决条件,我勾选了这些项目:

.net框架sp1

Microsoft .net框架4

Microsoft Office 2007主互操作程序集

用于办公室运行时的Microsoft visual studio 2010工具

Windows安装程序4.5
>我正在使用JSON.这是我班级的代码:

[Serializable]
[JsonObject(MemberSerialization.OptIn)]
public class documentSchemaRestInfo
{
    [System.Runtime.Serialization.DataMember]
    [JsonProperty]
    public double id { get; set; }
    [System.Runtime.Serialization.DataMember]
    [JsonProperty]
    public string name { get; set; }

    [System.Runtime.Serialization.DataMember]
    [JsonProperty]
    public string description { get; set; }

    [System.Runtime.Serialization.DataMember]
    [JsonProperty]
    public string[] fields { get; set; }
}

// ********* ************
>使用该类的代码:

public List<DocumentField> getSchemaOfGroup(documentGroupPk groupPK)
{
    List<DocumentField> result = new List<DocumentField>();
    HttpWebRequest request = (HttpWebRequest)WebRequest.
        Create(ProxyFactory.baseAddress+"/services/rest/group/" 
        + groupPK.id + "/schema");
    HttpWebResponse response = (HttpWebResponse)request.GetResponse();

    StreamReader streamReader = new StreamReader(response.GetResponseStream());
    string responseBody = streamReader.ReadToEnd();

    dynamic ds = ((dynamic)JsonConvert.DeserializeObject(responseBody))
        .documentSchemaRestInfo;
    foreach (dynamic f in ds.fields)
    {
        result.Add(new DocumentField(
            f.name.ToString(),f.internalName.ToString(),false));
    }
    return result;
}

>客户端计算机上安装了Excel 2010.
>这是抛出异常的代码行:

excelApp = (Excel.Application) 
   System.Runtime.InteropServices.Marshal.GetActiveObject
   ("Excel.Application");

>奇怪的是,当我按照以下步骤操作时它会起作用:
在客户端上运行它并获得异常.
在我自己的PC上运行它(没有异常发生).
在客户端计算机的应用程序上按下我制作的Excel功能区上的加载项按钮
而这一次,我没有任何异常!
我检查了很多次.每次我按照这个顺序,它工作正常!

11.

非常感谢提前.

编辑:
12.我的应用程序是这样的:
用户第一次点击功能区上的按钮时,会出现登录表单,
如果他被授权,他要求的表格就会出现.
下一次出现问题表格.
只有第一次点击时才会发生异常.
这是我的代码:
(最后一行没有例外,
但第7行的情况并非如此)

1.//If there is no ticket,means we haven't had a successfull login yet.=> 
            2.// We should show the login form instead of groups form.
            3.if (string.IsNullOrEmpty(ProxyFactory.ticket))
            4.{
            5.  okOrCancel = new LoginForm().ShowDialog();
            6.    if (okOrCancel == DialogResult.OK)
            7.        new GroupsForm().ShowDialog();
            8.}
            9.//If the is a ticket,means we have had a successful login.
            10.else 
            11.    new GroupsForm().ShowDialog();
看起来只是代码spinets有点令人困惑,但从问题的标题我可以猜测你有动态创建序列化程序集的问题(安全问题或部分信任问题).您可以尝试通过转到项目属性/构建并从列表中选择关闭,将Addin dll中的“生成序列化程序集”设置为“关闭”.

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读