每当我们使用构建配置时,为什么Expression Blend 4的设计师不工作?

时间:2010-07-07 01:17:46

标签: silverlight build silverlight-4.0 expression-blend designer

我在使用Expression Blend 4时遇到了一个奇怪的问题。我一直在使用Blend 4和Visual Studio 2010一段时间而没有发生任何事故(除了超常频繁的崩溃)。现在我们的图形设计师想要开始使用Blend做一些修饰工作。

我们能够让Blend在他的计算机上编译解决方案。不幸的是,当我们尝试打开任何XAML文件时,我们从设计者那里得到错误,其中通过合并资源字典和附加属性包含的资源无法识别。基本上,即使Blend正在编译没有错误的解决方案,也好像看不到构建工件。

我们设置中唯一奇怪的是我们的解决方案包含多个构建配置,您无法在Blend中更改构建配置。

为什么你认为Blend的设计师无法加载它构建的文件?

2 个答案:

答案 0 :(得分:13)

在弄清楚Blend 4如何构建Visual Studio项目/解决方案时,我发现为什么我们的图形设计师的Blend副本无法正常工作并修复了问题。我们设置的多种构建配置都应该受到指责。以下是我发现的具体内容以及使用多个构建配置,Blend 4和Visual Studio 2010的其他任何人的警告列表。

警告1:Blend不允许您选择构建配置。

在Visual Studio中,构建时,始终使用特定的构建配置进行构建。此设置可以更改。 Blend似乎无法在其UI中的任何位置更改构建配置设置。相反,它使用自己的启发式方法来选择要使用的构建配置。

警告2:Blend在构建时不会使用相同的逻辑来选择构建配置。

这是给我们带来问题的原因。 Blend似乎有两种不同的方式来选择构建配置。编译时,它使用.csproj文件中的逻辑来选择默认的构建配置(请参阅警告3)。但是,设计人员会查找解决方案文件,该文件应该使用哪个构建配置的输出目录来解析程序集引用(请参阅警告4)。因此,尽管Blend编译正常,但设计人员并未查​​看已编译的文件,而是查看它创建的空bin目录。

警告3:Blend和Visual Studio不会以相同的方式处理默认构建配置。

在.csproj文件的顶部,有一个属性组,指定在运行csc.exe时未指定一个构建配置时使用的构建配置。 Visual Studio似乎不会修改此数据,可能是因为它始终使用已定义的构建配置,因此不需要它。我们删除了默认的Debug和Release配置并制作了我们自己的DebugWindows,ReleaseWindows,DebugMac和ReleaseMac配置,但是当没有指定配置时,项目文件仍然说使用“Debug”。 Blend 4运行csc.exe而没有构建配置,因此使用了默认逻辑。因此,我不得不手动修复.csproj文件。

警告4:Visual Studio不允许您订购解决方案的构建配置,并且订购与Blend相关。

与Blend在编译时选择构建配置的方式相反,Blend的设计人员似乎在解决方案文件中使用第一个解决方案配置来将项目与构建配置相关联。然后,设计人员在输出目录中查找其组件的 配置。换句话说,如果.csproj构建配置默认值与第一个解决方案配置的设置不匹配,即使您构建了项目,设计人员也不会看到您的类,合并的资源字典等。

首先无法通过Visual Studio更改任何解决方案配置。为了让我们解决设计人员寻找构建工件的问题,我们不得不在.sln文件中手动重新排序解决方案配置。

答案 1 :(得分:2)

您还可以通过将Debug配置添加回解决方案来快速解决此问题:

在配置列表中首先创建另一个名为“Debug”的配置。

enter image description here

你可以用两种方式做到这一点:
1)将已存在的配置重命名为“Debug”
   - 打开配置管理器
   - 展开“Active solution configeration”下拉列表    - 选择,您可以编辑或删除任何存在的配置 2)添加新配置    - 按照上述说明操作,然后按    - 您需要手动重新排序解决方案文件中的配置。

希望这会有所帮助......