当我在代码视图中打开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%的人确保其中大部分没有在工作流程中使用。但是,如果要对此流程进行单元测试,则需要引用所有这些程序集。似乎有很多不必要的引用。我可以避免吗?
最佳答案
如果工作流中的活动正在使用这些引用,则此工作流也将需要它。没有办法解决。
从理论上讲,您可以一一删除引用,然后尝试运行工作流程。不幸的是,这将是乏味的。
诸如ReSharper之类的实用程序可能拥有一种自动方式来清理未使用的引用...