C# 如何在生成时将类库程序集复制到Web项目中?

C# 如何在生成时将类库程序集复制到Web项目中?,c#,asp.net-core,onion-architecture,C#,Asp.net Core,Onion Architecture,问题 如何在构建时将类库程序集复制到核心Mvc项目中 问题陈述 我正在将洋葱架构项目移植到Asp.NETCore。根据设计方法,我有以下几点: Some.Bootstrapper - Startup.cs Some.WebApi - Program.cs 在Program.cs中,我正在引用引导程序程序集以调用我的Starup.cs文件: .UseStartup("Some.Bootstrapper") 但是,我无法确定如何将引导程序程序程序集文件输出到我的WebApi项目,我不应该直接引用

问题
如何在构建时将类库程序集复制到核心Mvc项目中

问题陈述
我正在将洋葱架构项目移植到Asp.NETCore。根据设计方法,我有以下几点:

Some.Bootstrapper
- Startup.cs
Some.WebApi
- Program.cs
在Program.cs中,我正在引用引导程序程序集以调用我的Starup.cs文件:

.UseStartup("Some.Bootstrapper")
但是,我无法确定如何将引导程序程序程序集文件输出到我的WebApi项目,我不应该直接引用Some.WebApi中的一些.Bootstrapper。在我以前的Asp.Net项目中,我使用Bootstrapper项目的属性窗口来设置输出路径(例如:…\Some.WebApi\bin\”。但是,在Asp.Net Core中,我理解这一点。它似乎已经能够剥猫皮了。我不确定如何设置

预期行为
我应该能够调用.UseStartup(“Some.Bootstrapper”),而无需直接引用程序集


感谢反馈。

您可以使用System.Reflection.Assembly命名空间

Assembly assembly = Assembly.LoadFrom("MyNice.dll");

Type type = assembly.GetType("MyType");

object instanceOfMyType = Activator.CreateInstance(type);

最终,在我的Bootstrapper项目中使用编译后脚本将DLL复制到WebApi对我来说是最好的解决方案

"scripts": {
    "postcompile": [ 
      "xcopy /I /F /Y %compile:OutputDir%\\. ..\\Some.WebApi\\bin\\%compile:Configuration%\\netcoreapp1.0\\" ]
  }

感谢您的建议。在我尝试之前,程序集不一定要在调用项目的/bin文件夹中吗?不,您只需要程序集的路径,不一定在bin文件夹中。即assembly.LoadFrom($“path\MyNice.dll”);不要做得太过分,除非它是一个在放入时应该被发现的模块,否则只需引用它。您的WebApi项目是主应用程序,组合根。它可以注册/引用项目的所有其他程序集。只需其他层(域、DAL)不应该提及基础设施、数据访问层或应用层。在主要应用程序中尝试这种特技只会让你的生活更加艰难。Tanks Tseng理解并同意。我应该澄清一下,我的Startup.cs确实引用了许多Autofac IoC模块。这是要点-it这就是为什么我不想直接引用WebApi和Bootstrapper。我想我已经整理好了。我将很快发布更新。