Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Silverlight资源dll生成预防_Silverlight_Build Process - Fatal编程技术网

Silverlight资源dll生成预防

Silverlight资源dll生成预防,silverlight,build-process,Silverlight,Build Process,当您构建silverlight应用程序时,它总是将一大堆本地化资源DLL输出到\bin\de\\bin\es\\bin\fr\等中(最终可以打包到.xap中)。这太棒了,但我没有使用这些,它们不是应用程序运行所必需的,它们正在扰乱我们的TFS构建服务器的根 我意识到TFS 2K8有一个小错误,可以很容易地修复,以确保这些文件不会被转储到构建服务器的根目录中,但是我理想的情况是防止这些文件被生成 为了阻止这些文件被创建,我尝试了一切。因为它们在构建时才真正存在,所以我不能告诉它们不要输出 我已经找

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

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

为了阻止这些文件被创建,我尝试了一切。因为它们在构建时才真正存在,所以我不能告诉它们不要输出

我已经找到了大量关于本地化/全球化的信息,这些文件是如何工作的,还有很多操作它们的方法,但是没有找到一开始就阻止它们生成的信息

有人知道我可以用什么方法阻止这些内容出现在\bin\on build中吗?在构建选项或类似的东西中是否有我可以使用的开关


编辑。我想要一种方法来防止这种情况发生。它可以通过后期生成事件来清理,但这远远不够理想。

使用后期生成步骤来清理您不需要的内容如何? 为此: 右键单击项目->属性->生成事件
而在后期生成中,您可以使用标准windows命令行命令。

在后期生成事件中:

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

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

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

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

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


祝你好运

我在另一个StackOverflow线程中回答了这个问题:

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

  • 创建一个新文件夹。我把我的命名为“未使用的文化”
  • 将所有不想使用的区域性文件夹移动到 新文件夹。确保不要移动“设计”文件夹,因为 出现在文件夹列表中的“文化文件夹”的中间。
  • 在项目中,删除Bin、Release等的内容。 文件夹。重建
  • 如果要添加对其他区域性的支持,只需移动 一个你想回到原来的位置

无论何时更新Silverlight SDK,您都可能需要再次进行更新。

您好,我可以通过后期生成操作来完成更新,但如果可能的话,我真的希望它根本不会发生。您好,就像我回答的另一个问题一样,是的,我可以通过后期事件来完成更新,问题是首先要防止创建文件,然后清理不是一个理想的解决方案。