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

3
当我在代码视图中打开我的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
如果工作流程中的某个活动正在使用这些引用,那么该工作流程也需要它。没有其他办法。
理论上,您可以逐个删除引用并尝试运行工作流程。不幸的是,这将是繁琐的。
像 ReSharper 这样的实用程序可能有一种自动清理未使用引用的方法...

我试图删除这些引用,但由于这些引用是在自动生成的文件中生成的,我想知道这样做能持续多久。 - Jepzen
另一种摆脱这个问题的方法是将所有工作流程移动到一个单独的项目中,但这也不是那么容易。有关如何执行此操作的任何提示?名称空间错误等。 - Jepzen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接