Workflow Foundation对x64平台的支持? [英] Workflow Foundation support for x64 platform?

查看:88
本文介绍了Workflow Foundation对x64平台的支持?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好。



我是WF和这个论坛的新手。我有几个问题。



首先,最重要的是:工作流基础是否完全支持x64平台?



我有其他问题,我不确定它们是否与标题有关,如果我在这里问他们。正如我所说,我是这个(和其他)论坛的新手。我在工作开始时遇到了一些问题。我正在使用VS Professional&& 2013年,我有为x64平台构建的现有项目(这是工作流项目类型之一),目标框架是.NET 4.5.1,我的工作是用WF实现替换现有的实现。



当我向现有项目添加新活动并打开活动设计器时,构建失败,我得到的解释是我正在尝试构建的.exe文件被另一个进程使用。当我关闭设计师构建成功。为什么会这样?



当我添加一些参数并尝试通过从位于设计器表面下的组合框中选择浏览类型来选择自定义类型时,我不这样做获取我的自定义类作为选项。但是当我从位于右下角属性面板的组合框中单击浏览类型时,我将自定义类作为选项。为什么?



最后一个问题。当我选择自定义类作为参数或变量的类型并单击确定按钮时,我得到BadImageFormatException:无法加载文件或程序集'Foo,Version = 1.0.0,Culture = Neutral,PublicKeyToken = Something'或其中一个依赖项。试图在System.Reflection.RuntimeAssmebly._nLoad ...中加载程序格式不正确的程序

。这是为什么?



对于非主题问题和语法错误很抱歉。



问候,


Dile90BJ

Hi, everybody.

I am new to WF and this forum. I have several questions.

First and most important is: does workflow foundation have full support for x64 platforms?

I have other questions and i'm not sure if they are related to title and if i shoud ask them here. As i said I am new to this (and other) forums. I have encountered several problems right at the start of my work. I am using VS Professional&& 2013 and i have existing project (which is one of the workflow project types) built for x64 platform and target framework is .NET 4.5.1 and my job is to replace existing implementation of something with WF implementation.

When i add new activity to my existing project and activity designer is opened, build fails and explanation i get is that .exe file i'm trying to build is used by another process. When i close designer build is successful. Why is that?

When i add some argument and try to select custom type by choosing 'Browse for Types' from combo box that is located under designer surface, I dont get my custom classes as options. But when I click 'Browse for Types' from combo box that is located on the property panel in the bottom right corner i get my custom classes as options. Why is that?

And last question. When i select custom class as type for argument or variable and click "Ok" button, i get "BadImageFormatException: Could not load file or assembly 'Foo, Version=1.0.0, Culture=Neutral, PublicKeyToken=Something' or one of its dependencies. An attempt was made to load program with an incorrect format
at System.Reflection.RuntimeAssmebly._nLoad...". Why is that?

Sorry for off topic questions and grammar mistakes.

Regards,

Dile90BJ

推荐答案

信息不足。但你应该了解某些事情。您永远不应该在一个过程中混合使用不同的目标平台。所有平台只能与AnyCPU自由组合。 AnyCPU是几乎在所有情况下都应该使用的最有用的目标。这是可能的,因为它基于在运行时发生的JIT编译。只能使用某些非托管可执行模块,因此只能使用任何具体平台。如果没有使用这样的模块,所有目标应该是AnyCPU。



另外,你应该知道至少有两个不同的64位目标不兼容其他:x86-64(也称为AMD64)和IE-64(也称为Itanium)。如果由于某种原因,您试图使用没有源代码并且针对Itanium的程序集,如果它具有物理x98-64 CPU,则无法在系统上使用它,无论如何你做了什么,即使你在它上面安装了x86(32位)操作系统。但是所有物理CPU架构都与x86兼容。请参阅:

http://en.wikipedia.org/wiki/Instruction_set [< a href =http://en.wikipedia.org/wiki/Instruction_settarget =_ blanktitle =New Window> ^ ],

http://en.wikipedia.org/wiki/x86 [ ^ ],

http://en.wikipedia.org/wiki/X86-64 [ ^ ],

http://en.wikipedia.org/wiki / Itanium [ ^ ]。



您应该知道的另一件事是: http://en.wikipedia.org/ wiki / WOW64 [ ^ ]。



您可以在64位系统上使用任何x86目标程序集(据报道,它仅适用于Itanium,但是我个人没试过,但你仍然无法混淆任何不同的混凝土架构。



-SA
Not enough information. But you should understand certain things. You should never ever mix different target platforms in one process. All platforms can be freely combined only with "AnyCPU". AnyCPU is the most usable target which you should use in almost all cases. It is possible because it is based on JIT compilation which happens during runtime. Any concrete platforms can be used only because of some dependency on some unmanaged executable module. If such modules are not used, all targets should be "AnyCPU".

Also, you should know that there are at least two different 64-bit targets incompatible with each other: x86-64 (also called AMD64) and IE-64 (also called "Itanium"). If, by some reason, you are trying to use an assembly which comes without source code and is targeted to "Itanium", you won't be able to use it on your system, if it has physical x98-64 CPU, no matter what you do, even if you install a x86 (32-bit) OS on it. But all physical CPU architectures are compatible with x86. Please see:
http://en.wikipedia.org/wiki/Instruction_set[^],
http://en.wikipedia.org/wiki/x86[^],
http://en.wikipedia.org/wiki/X86-64[^],
http://en.wikipedia.org/wiki/Itanium[^].

One more thing you should know is this: http://en.wikipedia.org/wiki/WOW64[^].

You can use any x86-targeted assemblies on your 64-bit system (reportedly, it works purely on Itanium, but I personally did not try), but you still cannot mix-up any different concrete architectures.

—SA


这篇关于Workflow Foundation对x64平台的支持?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆