我有一个工作流服务活动,它显示出一些奇怪的行为。第一个问题是,如果工作流在设计器中处于打开状态,并且我执行了完全重新生成,则会收到一条编译器消息
warning MSB3061: Unable to delete file "E:\Work\etc.\MyAssembly.dll". Access to the path 'E:\Work\etc.\MyAssembly.dll' is denied.如果我检查一下是什么在保存文件的句柄,那么它确实是devene.exe。如果我关闭设计器,那么我可以执行重新构建。我看到的第二件不寻常的事情是自定义活动(在单独的程序集中)没有被识别,同样是由设计者识别的。因此,如果我尝试构建它,它会告诉我在程序集“MyOtherAssembly”中找不到类型"MyType“。如果我打开的活动是代码视图(即XML视图),那么它构建良好并识别我的所有类型(就像我应该做的那样,因为它们被正确引用)。此外,以前会在工作流工具箱中显示活动,但现在不再显示。
我应该指出的是,问题不仅仅是我正在处理的特定工作流程。如果我删除此工作流并添加另一个服务工作流,我会看到相同的行为,因此问题出在项目本身。我已经尝试从零开始创建一个新的项目,并添加一个服务工作流程,这似乎是可行的,但我热衷于解决我目前的项目的问题,因为它是相当大的。此外,我将工作测试项目中的程序集引用与非工作测试项目中的程序集引用进行了比较,并且工作poject中的所有内容也都在非工作项目中。
如果项目不是作为"WCF工作流服务应用程序“创建的,那么...the工作流服务是我在事后添加的(但当我几个月前最后一次打开设计器时,设计器工作得很好,服务也是如此)。
更新在尝试了所有的建议后,发现它们都没有起到任何作用,我最终采取了冒险行动,并声明删除我的项目的碎片,看看是什么导致了这个问题。结果真的很奇怪,所以希望现在有人能帮助我缩小问题的范围。
通过删除项目引用,我将问题缩小到我的WF项目正在引用的一个项目。如果我引用此项目并打开WF设计的WF,WF项目将不会构建。“引发”问题的项目是一个简单的数据传输对象库,没有静态构造器或类似的东西,这可能会导致WF设计器创建/保留引用。我从这个DTO项目中删除了所有类,问题就消失了。然后,我声明添加回类并尝试重新构建。最终,我遇到了一个点,它停止构建,但它似乎有点随机。我重新添加一个文件,它停止构建,删除该文件,它再次工作。我开始从该文件中删除属性(它们都是简单的值类型,主要是int和字符串),直到所有属性都消失了,项目才会再次构建。如果我向文件中添加任何属性,就会使构建停止工作。例如:
public class TestUser
{
public int test {get; set;}
}在上面的类中构建失败,但是在下面的类中工作
public class TestUser
{
private int test = 0
}太奇怪了!然后,我做的下一件事就是将有问题的项目添加到一个全新的WF服务项目中,最初我没有看到相同的行为。但是,一旦我将解决方案设置为使用x64构建,问题就会出现在新的解决方案中。因此,这个问题只发生在x64构建上,使用来自我的DTO项目的文件的特定组合。然而,确切的文件似乎有点随机…我可以添加一个新的类,如上所述,它失败了。但是,如果我从DTO应用程序中删除所有其他类,它将再次工作。一个接一个地将它们添加回来,最终还是会失败,但如果我删除上面的类就不会了(即出现问题的类不再是问题)。
底线是,当构建设置为x64时,这似乎是带有服务工作流的WF4设计器中的错误。我需要更多的实验来找出导致问题的环境的确切组合,但在此期间欢迎任何想法!
发布于 2013-01-16 05:41:27
我最终找到了这个问题的答案。基本上,如果将解决方案设置为编译为64x,WF设计器将无法工作。原因是visual studio本身是一个32位应用程序,因此无法加载所需的程序集并找到任何类型。
发布于 2012-02-04 14:53:53
我真的没有答案,但你可以试着用Beyond Compare或WinDiff之类的东西来比较工作的和非工作的。我曾在类似的情况下使用过它们,当仅仅是令人惊讶的差异并不能使差异变得明显时。
迈克更新:,我做了更多的调查。我似乎不能很容易地复制这个问题,但由于我也遇到过类似的问题,而且我在WF4中工作了很多次,所以我觉得我应该更仔细地研究这个问题。
查看this StackOverflow article。引用的问题并不涉及WF设计器,而是与锁定构建输出的VS的其他部分有关。问题中有三种不同的解决方案,标记答案中有一种。
看看更多的博客和文章,似乎所有的解决方案都有效,这只是取决于Visual Studio的哪个部分锁定了文件,以及哪些解决方案将为您工作。你能不能都试一试,看看这些解决方案中有没有适合锁定文件的设计者的?
https://stackoverflow.com/questions/9085153
复制相似问题