我在Visual Studio中有一个包含5个项目的解决方案.他们是:
Foo.Core:核心功能Foo.Api:生成在核心之上的代码Foo.Web:特定于Web的扩展Foo.Web.Mvc:MVC特定的扩展Newtonsoft.Json:第三方图书馆我想使用ILMerge进行合并Foo.Core,Foo.Api并将Newtonsoft.Json其调用到单个程序集中Foo.这很容易.
我遇到的问题是,Foo.Web并Foo.Web.Mvc都需要引用所有三个合并组件.
如果我引用原始程序集,则在执行ILMerge后它们将具有无效引用.
如果我引用ILMerged程序集,我必须引用一个调试程序集,然后在我打包之前更改它,这似乎并不理想.
我已经尝试创建一个名为的项目Foo,该项目引用3个合并的程序集并用ILmerged程序集替换它自己的输出,但这似乎根本不起作用.
有可靠的方法吗?
ILMerge 旨在创建一个新的包/组件作为盒装“产品”(API、程序...),以简化程序集管理,例如部署、gac 引用、程序集可见性等,以供一体式使用或外部使用,不混合。
我的猜测是,如果您的项目中有一个或一个来生成合并的项目,则您必须PostBuildEvent在主程序集/项目上设置一个(?),它将在您的项目中作为外部程序集引用。Foo.ApiPreBuildEventFoo.WebFoo.Web.MvcFooFoo.WebFoo.Web.Mvc
您可以通过设置 MsBuild 任务使其在 Visual Studio 中更加集成。示例(来自 Stackoverflow )。
| 归档时间: |
|
| 查看次数: |
1420 次 |
| 最近记录: |