我正在为现有的.Net应用程序编写API,以便将该应用程序用作其他自定义应用程序(可能由客户编写)的“引擎”。前提是“引擎”将始终安装并在目标机器上运行。
我的方法是在VS解决方案中为“引擎”应用程序创建一个新项目,这是一个类库,它提供公共方法,将应用程序自己的库的细粒度功能聚合到更高级别的简化方法调用中。第三方应用程序作者使用。
API在“引擎”解决方案的上下文中运行良好,单元测试正常运行。但是,当我尝试在VS解决方案之外创建一个简单的“自定义”应用程序时,使用API的引用来提供我需要的服务,我遇到了一个问题 - 除非我的自定义应用程序有一个“引擎”的副本 app.config (sic)文件在编译之前,引擎在尝试访问其配置文件时会抛出异常。
期望第三方开发人员提供app.config文件显然是不切实际的,并且期望他们必须将引擎的配置文件复制到他们的解决方案并重命名它有点不合时宜。
有更清洁的方法吗?目的是使自定义应用程序仅需要引用API程序集,并使引擎“正常工作”,就像它正常使用一样。最好避免使用二进制远程处理,Web服务和COM(假设它们可以解决问题)。
哦,这就是.Net 3.5& VS2008 TIA
答案 0 :(得分:0)
是的,使用NuGet。 如果您将程序集打包在NuGet包中,则可以添加configuration file transform,它将自动添加/更新引擎的配置属性。然后,当您的消费者提取您的引用(从本地NuGet服务器?),然后他们将获得程序集引用和配置转换。
我建议为您的引擎制作一个正式的配置部分,以便您知道您只是在NuGet包中管理其配置。