我可以从构建中排除Microsoft.Data.OData 语言资源吗?
本文关键字:语言 OData 资源 Data Microsoft 构建 排除 我可以 | 更新日期: 2023-09-27 18:31:09
Azure Storage 2.0 client for c# use Microsoft.Data.OData library.问题是在构建时,我在构建文件夹中找到:
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 的库无用。我喜欢让我的包裹尽可能轻,以便快速发送。
我的应用程序设置为使用区域性默认值和区域性 FR-FR
排除所有其他语言是否安全,如何在构建时实现此排除?
这是我的网络配置
<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>
做的一件事是修改.csproj
文件,挂接到 AfterBuild
事件,然后删除除所需语言之外的所有文件夹。不是最佳的,但它应该有效。像这样:
<Target Name="AfterBuild">
<ItemGroup>
<DirsToClean Include="$(OutDir)'de;$(OutDir)'es;..." />
</ItemGroup>
<RemoveDir Directories="@(DirsToClean)" />
</Target>
至于排除是否安全...不知道。:)
这是您可以尝试的方法。 您所说的资源是解决方案和输出的一部分,因为它们是引用的 Nuget 包的一部分。 具体来说,这些:
- Microsoft.数据.OData 5.2.0
- Microsoft.数据.EDM 5.2.0
- 系统空间 5.2.0
我不确定这些版本与本主题的相关性如何,但我创建了一个新的 ASP.NET MVC 4.5 Web 应用程序并添加了 Windows Azure Storage 2.0 包,结果安装了它们。
现在,有一个名为Nuget包资源管理器的开源工具:http://npe.codeplex.com/
使用 NPE,可以打开、查看和编辑 Nuget 包。 您将在 packages
目录中找到包含这些包的文件夹,该文件夹位于解决方案所在位置的相同相对路径中。
您需要使用 NPE 编辑包,并删除对其中的资源文件的引用并保存包。 您还需要从packages
文件夹中删除实际的资源程序集。
您应该能够执行Clean Solution...
和Rebuild Solution
,并看到软件在没有这些引用的情况下编译。
此技术实质上是调整依赖项的配置以影响生成输出。