Silverlight资源dll生成预防
当您构建silverlight应用程序时,它总是将一大堆本地化资源DLL输出到Silverlight资源dll生成预防,silverlight,build-process,Silverlight,Build Process,当您构建silverlight应用程序时,它总是将一大堆本地化资源DLL输出到\bin\de\\bin\es\\bin\fr\等中(最终可以打包到.xap中)。这太棒了,但我没有使用这些,它们不是应用程序运行所必需的,它们正在扰乱我们的TFS构建服务器的根 我意识到TFS 2K8有一个小错误,可以很容易地修复,以确保这些文件不会被转储到构建服务器的根目录中,但是我理想的情况是防止这些文件被生成 为了阻止这些文件被创建,我尝试了一切。因为它们在构建时才真正存在,所以我不能告诉它们不要输出 我已经找
\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,您都可能需要再次进行更新。您好,我可以通过后期生成操作来完成更新,但如果可能的话,我真的希望它根本不会发生。您好,就像我回答的另一个问题一样,是的,我可以通过后期事件来完成更新,问题是首先要防止创建文件,然后清理不是一个理想的解决方案。