在Powershell中为System.Web.Script.Serialization加载C#Assembly System.Web.Extension

时间:2014-12-15 20:36:24

标签: c# powershell assemblies

我很难让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";
    }

任何人都可以帮我解决这个问题吗?谢谢!

1 个答案:

答案 0 :(得分:0)

我觉得有一个错字,$Assem而不是$Assemblies。尝试使用:

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