Error: Only X86 Assemblies are supported

ShamanDBAShamanDBA Posts: 2
Anyone getting the error the following error when checking in changes:

Only x86 asseblies are supported.

Is there any work around for this?

Comments

  • We don't currently support x64 CLR assemblies. Our internal reference number is SOC-1208 and we are looking into fixing this, but I don't have an estimate at this time.

    If you'd like to add your vote to the user voice request that would be helpful.
    http://redgate.uservoice.com/forums/390 ... r-have-the

    You could try unchecking this in your commit list for now.

    Thanks you!
    Stephanie M. Herr :-)
    SQL Source Control Project Manager
    Thank you!
    Stephanie M. Herr    :-)
    Product Manager Database DevOps
  • peter ehpeter eh Posts: 17 Bronze 2
    > You could try unchecking this in your commit list for now.

    I wish I could. I get an UnhandledException while comparing, so no change to check or uncheck anything. (RG Source Control 1.0.1.13, SQL Server 2008 R2 64bit Developer Edition).
    Other projects without assemblies work fine (except those with spatial data, but that's another point).

    Any other ideas to uncheck assemblies?

    Peter
  • Hey peter. Sorry again about the problem, we're working on fixing it, but I for now I'm just going to flesh out the work around. Once you've committed the assembly to source control we are unable to show the tab, but if it never goes into source control (or we cunningly delete it) then the tab will still work. That means that you can carry on trying out the product by never committing the assembly.

    In order to delete the assembly you can
    - Delete the assemblies sql file using your normal source control client and commit
    - You then need to go and update your WorkingBase folder manually using your source control client. If you look in C:\Users\<whoever>\AppData\Local\Red Gate\SQL Source Control 1\WorkingBases for the file you just deleted in source control, and then update the Assemblies directory containing it the file should disappear
    - If you then restart SSMS the tab should now load without error, showing the Assembly as an Add on the commit tab.
  • peter ehpeter eh Posts: 17 Bronze 2
    Hi Simon
    Thanks for your help. I've taken the folowing steps:
    - I moved the assemblies with the TortoiseSVN RepoBrowser away to another temporary project, because I don't want to loose the history. The assemblies folder is now empty.
    - Checked the ...\SQL Source Control 1\WorkingBases\...\Assemblies directory. It contains only empty subfolders, but no files.
    - Restarted SSMS, connect to the server, select the database and ... get the UnhandledException in the "Commit Changes" tab :(

    Maybe this is not the same problem? I attached the complete error message from Source Control. The mentioned function and assembly, both exists in the database and are working fine.

    Peter

    RedGate.SQLSourceControl.Engine.SqlCompareException: Failed to locate the CLR assembly MCH.Sql for the [dbo].[fnc_regex_validate_CLR] function. ---> RedGate.SQLCompare.Engine.SqlCompareException: Failed to locate the CLR assembly MCH.Sql for the [dbo].[fnc_regex_validate_CLR] function. ---> SmartAssembly.SmartExceptionsCore.UnhandledException: SmartExceptionsCore.UnhandledException @ 3712, offset:392 ---> SmartAssembly.SmartExceptionsCore.UnhandledException: SmartExceptionsCore.UnhandledException @ 3710, offset:2753 ---> SmartAssembly.SmartExceptionsCore.UnhandledException: SmartExceptionsCore.UnhandledException @ 539, offset:477 ---> SmartAssembly.SmartExceptionsCore.UnhandledException: SmartExceptionsCore.UnhandledException @ 2048, offset:37 ---> SmartAssembly.SmartExceptionsCore.UnhandledException: SmartExceptionsCore.UnhandledException @ 314, offset:38 ---> SmartAssembly.SmartExceptionsCore.UnhandledException: SmartExceptionsCore.UnhandledException @ 1985, offset:0 ---> SmartAssembly.SmartExceptionsCore.UnhandledException: SmartExceptionsCore.UnhandledException @ 313, offset:38 ---> SmartAssembly.SmartExceptionsCore.UnhandledException: SmartExceptionsCore.UnhandledException @ 316, offset:38 ---> SmartAssembly.SmartExceptionsCore.UnhandledException: SmartExceptionsCore.UnhandledException @ 952, offset:61 ---> SmartAssembly.SmartExceptionsCore.UnhandledException: SmartExceptionsCore.UnhandledException @ 938, offset:89 ---> SmartAssembly.SmartExceptionsCore.UnhandledException: SmartExceptionsCore.UnhandledException @ 950, offset:14 ---> SmartAssembly.SmartExceptionsCore.UnhandledException: SmartExceptionsCore.UnhandledException @ 2171, offset:58 ---> SmartAssembly.SmartExceptionsCore.UnhandledException: SmartExceptionsCore.UnhandledException @ 1926, offset:63 ---> SmartAssembly.SmartExceptionsCore.UnhandledException: SmartExceptionsCore.UnhandledException @ 218, offset:548 ---> SmartAssembly.SmartExceptionsCore.UnhandledException: SmartExceptionsCore.UnhandledException @ 2168, offset:1084 ---> SmartAssembly.SmartExceptionsCore.UnhandledException: SmartExceptionsCore.UnhandledException @ 1989, offset:18 ---> SmartAssembly.SmartExceptionsCore.UnhandledException: SmartExceptionsCore.UnhandledException @ 314, offset:38 ---> SmartAssembly.SmartExceptionsCore.UnhandledException: SmartExceptionsCore.UnhandledException @ 318, offset:38 ---> SmartAssembly.SmartExceptionsCore.UnhandledException: SmartExceptionsCore.UnhandledException @ 1765, offset:213 ---> SmartAssembly.SmartExceptionsCore.UnhandledException: SmartExceptionsCore.UnhandledException @ 2165, offset:63 ---> SmartAssembly.SmartExceptionsCore.UnhandledException: SmartExceptionsCore.UnhandledException @ 1764, offset:99 ---> SmartAssembly.SmartExceptionsCore.UnhandledException: SmartExceptionsCore.UnhandledException @ 1763, offset:52 ---> SmartAssembly.SmartExceptionsCore.UnhandledException: SmartExceptionsCore.UnhandledException @ 1229, offset:25 ---> SmartAssembly.SmartExceptionsCore.UnhandledException: SmartExceptionsCore.UnhandledException @ 1226, offset:0 ---> SmartAssembly.SmartExceptionsCore.UnhandledException: SmartExceptionsCore.UnhandledException @ 2065, offset:0 ---> SmartAssembly.SmartExceptionsCore.UnhandledException: SmartExceptionsCore.UnhandledException @ 1928, offset:117 ---> SmartAssembly.SmartExceptionsCore.UnhandledException: SmartExceptionsCore.UnhandledException @ 203, offset:11 ---> SmartAssembly.SmartExceptionsCore.UnhandledException: SmartExceptionsCore.UnhandledException @ 248, offset:137 ---> SmartAssembly.SmartExceptionsCore.UnhandledException: SmartExceptionsCore.UnhandledException @ 724, offset:26 ---> SmartAssembly.SmartExceptionsCore.UnhandledException: SmartExceptionsCore.UnhandledException @ 2314, offset:31 ---> SmartAssembly.SmartExceptionsCore.UnhandledException: SmartExceptionsCore.UnhandledException @ 1357, offset:120 ---> SmartAssembly.SmartExceptionsCore.UnhandledException: SmartExceptionsCore.UnhandledException @ 1359, offset:21 ---> SmartAssembly.SmartExceptionsCore.UnhandledException: SmartExceptionsCore.UnhandledException @ 1504, offset:13
    --- End of inner exception stack trace ---
    --- End of inner exception stack trace ---
    --- End of inner exception stack trace ---
    --- End of inner exception stack trace ---
    --- End of inner exception stack trace ---
    --- End of inner exception stack trace ---
    --- End of inner exception stack trace ---
    --- End of inner exception stack trace ---
    --- End of inner exception stack trace ---
    --- End of inner exception stack trace ---
    --- End of inner exception stack trace ---
    --- End of inner exception stack trace ---
    --- End of inner exception stack trace ---
    --- End of inner exception stack trace ---
    --- End of inner exception stack trace ---
    --- End of inner exception stack trace ---
    --- End of inner exception stack trace ---
    --- End of inner exception stack trace ---
    --- End of inner exception stack trace ---
    --- End of inner exception stack trace ---
    --- End of inner exception stack trace ---
    --- End of inner exception stack trace ---
    --- End of inner exception stack trace ---
    --- End of inner exception stack trace ---
    --- End of inner exception stack trace ---
    --- End of inner exception stack trace ---
    --- End of inner exception stack trace ---
    --- End of inner exception stack trace ---
    --- End of inner exception stack trace ---
    --- End of inner exception stack trace ---
    --- End of inner exception stack trace ---
    --- End of inner exception stack trace ---
    --- End of inner exception stack trace ---
    at #Eyg.#Gyg.#eGh()
    at #Eyg.#Gyg.#vl()
    at RedGate.SQLCompare.Engine.Database.Register(String path, ScriptDatabaseInformation dbinfo, Options options)
    at #G3c.#L3c.#t.#u3.#i4c()
    at #oEc.#7Jf.#hKf(ICancellableOperationStatus status, ICancellable database, Action action)
    at #oEc.#7Jf.#t.#B3.#sKf()
    at #oEc.#7Jf.#gKf(Action action)
    --- End of inner exception stack trace ---

    Server stack trace:
    bei #oEc.#7Jf.#gKf(Action action)
    bei #oEc.#7Jf.#jKf(ICancellableOperationStatus status, ICancellable database, Action action)
    bei #G3c.#L3c.#e4c(String path, #M3c args)
    bei #G3c.#K3c.#83c(String path, TArg argument)
    bei #G3c.#L3c.#f6c(String path, ScriptDatabaseInformation folderOptions, Options options, ICancellableOperationStatus status)
    bei #oEc.#i7c.#t.#9Jf.#t.#2Db.#TSi()
    bei RedGate.SQLSourceControl.Engine.Cancellables.CancellableOperation.#t.#izb.#j5f()
    bei System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs)
    bei System.Runtime.Remoting.Messaging.StackBuilderSink.PrivateProcessMessage(RuntimeMethodHandle md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs)
    bei System.Runtime.Remoting.Messaging.StackBuilderSink.AsyncProcessMessage(IMessage msg, IMessageSink replySink)

    Exception rethrown at [0]:
    at System.Runtime.Remoting.Proxies.RealProxy.EndInvokeHelper(Message reqMsg, Boolean bProxyCase)
    at System.Runtime.Remoting.Proxies.RemotingProxy.Invoke(Object NotUsed, MessageData& msgData)
    at RedGate.SQLSourceControl.Engine.Action.EndInvoke(IAsyncResult result)
    at RedGate.SQLSourceControl.Engine.Cancellables.CancellableOperation.#zIc(ICancellableOperationStatus status, Pair`2[] labelledActions)
    at #oEc.#i7c.#t.#9Jf.#SSi()
    at #oEc.#7Jf.#t.#9Jf.#uKf()
    at #oEc.#7Jf.#hKf(ICancellableOperationStatus status, ICancellable database, Action action)
    at #oEc.#7Jf.#lKf[T](ICancellableOperationStatus status, ICancellable database, Func`1 function)
    at #oEc.#i7c.#QSi[TDiffType](ICancellableOperationStatus status, IReadOnlySourceControlServerCallBacks sourceControlUserCallBacks, ScriptDatabaseInformation folderOptions)
    at #oEc.#i7c.#t.#z2.#hOi()
    at #oEc.#i7c.#bOi[TDiffType](ICancellableOperationStatus status, Func`1 innerBuild)
    at #oEc.#i7c.#q1f(ICancellableOperationStatus status, IReadOnlySourceControlServerCallBacks sourceControlUserCallBacks, ScriptDatabaseInformation folderOptions)
    at #oEc.#4Ec.#z7c(ICancellableOperationStatus status, IReadOnlySourceControlServerCallBacks sourceControlUserCallBacks)
    at #oEc.#4Ec.#7Jc(ICancellableOperationStatus status, IReadOnlySourceControlServerCallBacks sourceControlUserCallBacks)
    at #oEc.#4Ec.#t.#A2.#D7c(ICancellableOperationStatus status)
    at #eEc.#iEc.#t.#u3.#k5f()
    at RedGate.SQLSourceControl.Engine.Cancellables.CancellableOperationBase.InvokeWithTracker(Action action)
    at #eEc.#iEc.Invoke()
    at #JLc.#Qlg.Invoke()
    at #JLc.#PLc.#t.#Jfb.#EJf()
    at RedGate.SQLSourceControl.Engine.SmartAssembly.ExceptionReporting.ErrorReporterBase.Do(Action toDo, Predicate`1 shouldReportPredicate, Boolean rethrow)
    at RedGate.SQLSourceControl.Engine.SmartAssembly.ExceptionReporting.ErrorReporterBase.DoWithObviousExceptionsRethrowAll(Action action)
    at RedGate.SQLSourceControl.CommonUI.Forms.ErrorDialog.DoWithObviousExceptionsRethrowAll(Action action)
    at #JLc.#PLc.#CTc(ICancellableOperation`1 operation, Object token)
  • Hello Peter,

    We're going to have to continue to look into this to get you up and running. I created an issue for us to address this. Our Internal Reference Number is SOC-1348.
    Thank you!
    Stephanie M. Herr    :-)
    Product Manager Database DevOps
  • peter ehpeter eh Posts: 17 Bronze 2
    After testing around a little bit, here's a workaround for those with less clr objects. Not only the assemblies must be left unchecked. All clr objects (stored procedures, functions, triggers, ... ) that are created with assemblies must be unchecked, deleted/moved away from the svn source safe path.

    Due to the large number of databases and database objects (tsql and clr) per database that we design, develop, maintain, manage, ... we stop now evaluating RG Source Control until we get a fix that solves this problem and lets us keep our existing svn history on clr objects.

    Peter
  • Hello Peter,

    Thanks for posting this workaround. We'll get in touch when we have imiplemented the assemblies so that you can continue your evaluation.
    Thank you!
    Stephanie M. Herr    :-)
    Product Manager Database DevOps
  • We think we have fixed the 64 bit assembly issue. Information on the release is available at http://www.red-gate.com/MessageBoard/vi ... hp?t=11654. It would be great if you could give it a try and let us know if this fixes your 64 bit assembly issue.
    Thank you!
    Stephanie M. Herr    :-)
    Product Manager Database DevOps
  • peter ehpeter eh Posts: 17 Bronze 2
    So far no more errors with 64bit assemblies. Looks good at first sight :)

    Peter
Sign In or Register to comment.