删除xaml文件中未使用的引用程序集

时间:2017-08-01 12:44:37

标签: c# xaml workflow-foundation-4

当我在代码视图中打开我的Windows工作流文件(.xaml)时,我看到这个巨大的引用程序集列表

<TextExpression.ReferencesForImplementation>
    <sco:Collection x:TypeArguments="AssemblyReference">
      <AssemblyReference>Antlr3.Runtime</AssemblyReference>
      <AssemblyReference>AutoMapper</AssemblyReference>
      <AssemblyReference>dk.nita.saml20</AssemblyReference>
      <AssemblyReference>DocumentFormat.OpenXml</AssemblyReference>
      <AssemblyReference>EntityFramework</AssemblyReference>
      <AssemblyReference>EntityFramework.Extended</AssemblyReference>
      <AssemblyReference>EntityFramework.SqlServer</AssemblyReference>
      <AssemblyReference>log4net</AssemblyReference>
      <AssemblyReference>Microsoft.CSharp</AssemblyReference>
      <AssemblyReference>Microsoft.Exchange.WebServices</AssemblyReference>
      <AssemblyReference>Microsoft.Exchange.WebServices.Auth</AssemblyReference>
      <AssemblyReference>Newtonsoft.Json</AssemblyReference>
      <AssemblyReference>Ninject</AssemblyReference>
      <AssemblyReference>Ninject.Web.Common</AssemblyReference>
      <AssemblyReference>Ninject.Web.Mvc</AssemblyReference>
      <AssemblyReference>PresentationCore</AssemblyReference>
      <AssemblyReference>PresentationFramework</AssemblyReference>
      <AssemblyReference>System.Activities</AssemblyReference>
      <AssemblyReference>System.Activities.Presentation</AssemblyReference>
      <AssemblyReference>System.IdentityModel</AssemblyReference>
      <AssemblyReference>System.IdentityModel.Services</AssemblyReference>
      <AssemblyReference>System.Net.Http</AssemblyReference>
      <AssemblyReference>System.Net.Http.Formatting</AssemblyReference>
      <AssemblyReference>System.Runtime.Serialization</AssemblyReference>
      <AssemblyReference>System.Security</AssemblyReference>
      <AssemblyReference>System.ServiceModel</AssemblyReference>
      <AssemblyReference>System.ServiceModel.Activities</AssemblyReference>
      <AssemblyReference>System.Web.DynamicData</AssemblyReference>
      <AssemblyReference>System.Web.Entity</AssemblyReference>
      <AssemblyReference>System.Web.ApplicationServices</AssemblyReference>
      <AssemblyReference>System.ComponentModel.DataAnnotations</AssemblyReference>
      <AssemblyReference>System</AssemblyReference>
      <AssemblyReference>System.Data</AssemblyReference>
      <AssemblyReference>System.Core</AssemblyReference>
      <AssemblyReference>System.Data.DataSetExtensions</AssemblyReference>
      <AssemblyReference>System.Web.Extensions</AssemblyReference>
      <AssemblyReference>System.Web.Helpers</AssemblyReference>
      <AssemblyReference>System.Web.Http</AssemblyReference>
      <AssemblyReference>System.Web.Http.Tracing</AssemblyReference>
      <AssemblyReference>System.Web.Http.WebHost</AssemblyReference>
      <AssemblyReference>System.Web.Mvc</AssemblyReference>
      <AssemblyReference>System.Web.Optimization</AssemblyReference>
      <AssemblyReference>System.Web.Razor</AssemblyReference>
      <AssemblyReference>System.Web.WebPages</AssemblyReference>
      <AssemblyReference>System.Web.WebPages.Deployment</AssemblyReference>
      <AssemblyReference>System.Web.WebPages.Razor</AssemblyReference>
      <AssemblyReference>System.Xaml</AssemblyReference>
      <AssemblyReference>System.Xml.Linq</AssemblyReference>
      <AssemblyReference>System.Drawing</AssemblyReference>
      <AssemblyReference>System.Web</AssemblyReference>
      <AssemblyReference>System.Xml</AssemblyReference>
      <AssemblyReference>System.Configuration</AssemblyReference>
      <AssemblyReference>System.Web.Services</AssemblyReference>
      <AssemblyReference>System.EnterpriseServices</AssemblyReference>
      <AssemblyReference>TuesPechkin</AssemblyReference>
      <AssemblyReference>WebActivatorEx</AssemblyReference>
      <AssemblyReference>WebGrease</AssemblyReference>
      <AssemblyReference>WindowsBase</AssemblyReference>
      <AssemblyReference>Microsoft.Web.Infrastructure</AssemblyReference>
      <AssemblyReference>MyProject.Lib</AssemblyReference>
      <AssemblyReference>mscorlib</AssemblyReference>
      <AssemblyReference>MyProject.Web</AssemblyReference>
    </sco:Collection>

我99%确定其中大部分未在工作流程中使用。但是,如果我想运行此流程的单元测试,我需要引用所有这些程序集。好像很多不必要的引用。我可以避免这个吗?

1 个答案:

答案 0 :(得分:0)

如果工作流程中的某个活动正在使用这些参考,那么此工作流程也需要它。没有办法解决这个问题。

理论上,您可以逐个删除引用并尝试运行工作流。不幸的是,这将是乏味的。

像ReSharper这样的实用程序可能有一种自动清理未使用引用的方法......