【问题标题】:Loading C# Assembly System.Web.Extension for System.Web.Script.Serialization in Powershell在 Powershell 中为 System.Web.Script.Serialization 加载 C# 程序集 System.Web.Extension
【发布时间】:2014-12-15 20:36:24
【问题描述】:

我无法让 Powershell 使用 System.Web.Script.Serialization 运行我的 C# 代码。我收到错误“名称空间‘System.Web’中不存在类型或名称空间名称‘脚本’(您是否缺少程序集引用?)”。我已经将 Powershell 设置为使用 .Net 4。我能想到的唯一导致此问题的是它正在加载客户端配置文件而不是完整的 .Net 4 配置文件,但我对任何一个 Powershell 都不是很精通或 C#。

这是我正在使用的 Powershell 脚本,由于篇幅原因,我省略了 C# 代码。

$Assemblies = (
        "System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089",
        "System.Net, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a",
        "System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a",
        "System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
    )

$Source = @"
using System;
using System.Net;
using System.IO;
using System.Text;
using System.Web;
using System.Collections.Generic;
using System.Web.Script.Serialization;
using System.Threading;

class DataMineAPI
{
   \\\\omitted 
}

class getUpsightData 
{
   \\\\omitted
}
"@

Add-Type -ReferencedAssemblies $Assem -TypeDefinition $Source -Language CSharp 

New-Object DataMineAutomation.getUpsightData -Property @{
        queryFolder = "Path1";
        authFile = "File";
        downloadFolder = "Path2";
        logFolder = "Path3";
    }

谁能帮我解决这个问题?谢谢!

【问题讨论】:

    标签: c# powershell assemblies


    【解决方案1】:

    在我看来,有一个错字,$Assem 而不是$Assemblies。尝试使用:

    Add-Type -ReferencedAssemblies $Assemblies -TypeDefinition $Source -Language CSharp 
    

    【讨论】:

    • 哎呀,现在我觉得自己像个更大的白痴。看起来它现在加载正确,谢谢! =)
    • @user3023763 没问题,它甚至发生在我们当中最好的人身上:P
    猜你喜欢
    • 1970-01-01
    • 2012-10-07
    • 2017-11-19
    • 2018-03-24
    • 2015-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多