处理SSIS 2012项目的.NET 4.5类库中的混合模式程序集错误

时间:2013-12-04 16:51:55

标签: wcf ssis

我正在尝试使用SSIS 2012项目部署模型创建.NET 4.5类库以在服务器上部署ETL。 问题是,当尝试创建环境或更改文件夹时,我收到此错误:

对象'CatalogFolder [@ Name ='FolderName']上的'Alter'操作在执行期间失败。

当我试图部署像这样的ispac

时,有一个例子
IntegrationServices integrationServices = new IntegrationServices(new SqlConnection(connection));
Catalog catalog = integrationServices.Catalogs[parameters.Catalog];
CatalogFolder folder = catalog.Folders[parameters.Folder];
using (Project project = Project.OpenProject(parameters.ProjectFileName))
{
      projectName = project.Name;                        
      project.Save();
}
byte[] stream = File.ReadAllBytes(projectFileName);

if (folder.Projects[projectName] != null)
     folder.Projects[projectName].Drop();

Operation operation = folder.DeployProject(projectName, stream);

folder.Alter();

folder.Alter();抛出上述异常。内在的例外说:

“混合模式程序集是针对运行时版本'v2.0.50727'构建的,如果没有其他配置信息,则无法在4.0运行时加载。”

所以我尝试使用以下行将配置文件添加到类库中:

  <startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
  </startup>

但是应用程序仍无效。

此类库由另一个类调用,父类用于wcf服务。

有什么想法吗?

由于

1 个答案:

答案 0 :(得分:1)

我认为“startup”标签和“useLegacyV2RuntimeActivationPolicy”属性是用于运行运行wcf服务的应用程序的配置文件。

所以,因为我认为你使用WcfHost来启动你的服务,试着把:

<startup useLegacyV2RuntimeActivationPolicy="true" />

在WcfHost的app.config上。通常你可以在:

找到

C:\ Program Files(x86)\ Microsoft Visual Studio XX.0 \ Common7 \ IDE \ WcfSvcHost.exe.config

(使用您使用的Visual Studio版本更改XX)