Я попытался преобразовать следующие powershell script для развертывания проекта SSIS 2012 в сценарий F #.Ошибка сборки сборки смешанного режима в F # Интерактивный
Кажется, я получаю следующее сообщение об ошибке при попытке запустить и это через F # Interactive при оценке) линии catalog.Create (:
System.IO.FileLoadException: Смешанный режим сборка построена на версию «v2 .0.50727 'среды выполнения и не может быть загружен в среду выполнения 4.0 без дополнительной информации о конфигурации. в Microsoft.SqlServer.Management.IntegrationServices.Catalog.CheckDatabase (IntegrationServices магазин) в Microsoft.SqlServer.Management.IntegrationServices.Catalog.Create (Boolean execSsisStartup) в. $ FSI_0007.main @() Остановленный из-за ошибки
Я запускаю это с помощью Microsoft Visual Studio Express 2012 для Интернета. Может ли быть, что F # interactive работает под 4.0 вместо 2.0 runtime? Может ли это как-то измениться?
Начало сценария я преобразованного можно увидеть ниже:
// Variables
module Global =
let projectFilePath = @"C:\Projects2012\Internal Reporting\SourceControl\RKN BI DataWarehouse Solution\Releases\Release 1.1.1\SSIS\SSIS Dynamics CRM Staging Load.ispac"
let projectName = "SSIS Dynamics CRM Staging Load"
let folderName = "RKNBI"
let environmentName = "Dev"
// Load the IntegrationServices Assembly
#r "Microsoft.SqlServer.Management.Sdk.Sfc"
#r "Microsoft.SqlServer.Management.IntegrationServices"
#r "Microsoft.SqlServer.Smo"
#r "Microsoft.SqlServer.ConnectionInfo"
open System.Data
open Microsoft.SqlServer.Management.Sdk.Sfc
open Microsoft.SqlServer.Management.IntegrationServices
open System.IO
printfn "Connecting to server ..."
// Create a connection to the server
let sqlConnectionString = "Data Source=localhost;Initial Catalog=master;Integrated Security=SSPI;"
let sqlConnection = new SqlClient.SqlConnection(sqlConnectionString)
// Create the Integration Services object
let integrationServices = IntegrationServices(sqlConnection)
printfn "Removing previous catalog ..."
// Drop the existing catalog if it exists
if (integrationServices.Catalogs.Count > 0) then
integrationServices.Catalogs.["SSISDB"].Drop()
else
()
printfn "Creating new SSISDB Catalog ..."
// Provision a new SSIS Catalog
let catalog = Catalog(integrationServices, "SSISDB", "SUPER#secret1")
catalog.Create()
Изучите переадресацию сборки в файле .config или создайте в зависимости от того, какие библиотеки вы в зависимости от того, которые построены против 2.0 из источника. – ildjarn
попробуйте использовать журнал слияния, чтобы выяснить, какая версия FSharp.Core загружается, что ответит на ваш вопрос надежно. Версия W.X.Y.Z означает, что F # версия X.Y.Z работает против .net версии W. Так что, если вы видите что-то вроде 4.x.y.z, оно работает против .net 4. –