用于c#的Azure Storage 2.0客户端使用Microsoft.Data.OData库。 问题是在构建中我找到了我的构建文件夹:
bin/de/Microsoft.Data.Edm.resources.dll
bin/de/Microsoft.Data.OData.resources.dll
bin/de/Microsoft.Data.Services.Client.resources.dll
bin/de/System.Spatial.resources.dll
bin/es/Microsoft.Data.Edm.resources.dll
bin/es/Microsoft.Data.OData.resources.dll
bin/es/Microsoft.Data.Services.Client.resources.dll
bin/es/System.Spatial.resources.dll
等语言de,es,fr,it,ja,ko,ru,zh两次
这使得我发送到Azure云实例的软件包中的无用库大约需要3.2 Mo。我喜欢让我的包裹尽可能快地发送。
我的应用程序设置为使用Culture default和culture FR-FR
排除所有其他语言是否安全?如何在构建时实现此排除?
这是我的webconfig
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Microsoft.WindowsAzure.Storage" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.0.0" newVersion="4.1.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Data.Edm" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.6.1.0" newVersion="5.6.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Data.Services.Client" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.6.1.0" newVersion="5.6.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Data.OData" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.6.1.0" newVersion="5.6.1.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
答案 0 :(得分:6)
您可以做的一件事是修改您的.csproj
文件,挂钩AfterBuild
事件,然后删除除所需语言之外的所有文件夹。不是最佳的,但它应该工作。类似的东西:
<Target Name="AfterBuild">
<ItemGroup>
<DirsToClean Include="$(OutDir)\de;$(OutDir)\es;..." />
</ItemGroup>
<RemoveDir Directories="@(DirsToClean)" />
</Target>
至于是否可以安全排除......不知道。 :)
答案 1 :(得分:2)
您可以尝试以下方法。您所说的资源是解决方案和输出的一部分,因为它们是引用的Nuget包的一部分。特别是这些:
我不确定版本与此主题的相关性如何,但我创建了一个新的ASP.NET MVC 4.5 Web应用程序并添加了Windows Azure Storage 2.0软件包,因此安装了它们。
现在,有一个名为Nuget Package Explorer的开源工具:http://npe.codeplex.com/
使用NPE,您可以打开,查看和编辑Nuget包。您将在packages
目录中找到包含这些软件包的文件夹,该文件夹位于解决方案所在的相对路径中。
您需要使用NPE编辑包,并删除对那里的资源文件的引用并保存包。您还需要从packages
文件夹中删除实际的资源程序集。
您应该能够执行Clean Solution...
和Rebuild Solution
,并在没有这些参考的情况下查看软件编译。
这种技术实质上是调整依赖项的配置以影响构建输出。