Silverlight资源dll构建预防

时间:2009-02-18 18:14:53

标签: silverlight build-process

当您构建Silverlight应用程序时,它总是将一大堆本地化资源dll输出到\bin\de\ \bin\es\ \bin\fr\等(最终可以打包在.xap中)。这很棒,但我没有使用它们,它们不是应用程序运行所必需的,它们使我们的TFS构建服务器的根本混乱。

我意识到TFS 2K8存在一个小错误,它很容易修复,以确保这些文件不会被转储到构建服务器的根目录中,但我理想的是防止这些文件被生成。

我已经在阳光下尝试了一切来阻止创建这些文件。因为它们在构建时间之前实际上并不存在,所以我不能告诉它们不输出。

我发现了很多关于本地化/全球化的信息,这些文件是如何工作的以及很多方法来操纵它们,但没有任何关于阻止它们建立的信息。

有没有人知道我可以阻止它们出现在构建中的\ bin \中?是否有可以在构建选项中使用的开关或类似的东西?

编辑。我想要一种方法来防止这种情况发生。它可以通过构建后的事件来清理,但这远非理想。

4 个答案:

答案 0 :(得分:5)

我在另一个StackOverflow主题中回答了这个问题:Language folders for Silverlight projects when building with Team Build

打开Windows资源管理器。转到C:\ Program Files \ Microsoft SDKs \ Silverlight \ v4.0 \ Libraries \ Client。 (如果您运行的是64位Windows,则为C:\ Program Files(x86)\ Microsoft SDKs \ Silverlight \ v4.0 \ Libraries \ Client \)。在该位置,您将看到一堆语言/文化文件夹。

  • 创建一个新文件夹。我把我的名字命名为“Unused Cultures”。
  • 将您不想使用的所有文化文件夹移动到 新文件夹。请务必不要移动“Design”文件夹 出现在文件夹列表中的文化文件夹的中间。
  • 在您的项目中,删除Bin,Release等的内容。 文件夹。重建。
  • 如果您想为其他文化添加支持,只需移动即可 一个你想回到原来的位置。

每当您获得Silverlight SDK的更新时,您可能必须再次执行此操作。

答案 1 :(得分:2)

如果在构建项目后查看这些文件夹,则会在其中看到一堆dll和/或资源文件。您在文件夹中看到的dll / resources是导致文件夹本身生成的原因。由于您在项目中引用了这些dll,因此在构建项目时,引用会从SDK文件夹(或引用它们的任何位置)中获取这些文件。

因此,作为示例,如果您查看将安装在%ProgramFiles%\ MicrosoftSDKs \ Silverlight \ v3.0 \ Libraries \ Client文件夹中的System.Windows.Controls.dll。在该文件夹中,您将看到构建时生成的相同文件夹(de,fr,it等)。因此,为了防止这些生成,你可以做几件事。

1)将dll复制到单独的文件夹并引用该文件。我不得不从sdk文件夹中删除dll,以便在VS 2010中使用该引用,不确定该引用是否会在2008年修复。

2)从SDK本身重命名或删除全局文件夹和文件。这会影响所有项目,而不仅仅是您的单个项目,但它可能会为您解决问题。

祝你好运!

答案 2 :(得分:1)

在Post-built事件中:

rmdir /Q /S $(TargetDir)de
rmdir /Q /S $(TargetDir)fr
rmdir /Q /S $(TargetDir)it
rmdir /Q /S $(TargetDir)ja
rmdir /Q /S $(TargetDir)ko
rmdir /Q /S $(TargetDir)zh-Hans
rmdir /Q /S $(TargetDir)zh-Hant
rmdir /Q /S $(TargetDir)es

答案 3 :(得分:0)

如何使用post build步骤来清理你不需要的东西? 要做到这一点: 右键单击项目 - >属性 - >建立活动 在后期构建中,您可以使用标准的Windows命令行命令。