我已经实现了dll
来使用API。它正常工作,但现在我必须允许用户使用dev
和production
API(我们有开发和生产的单独环境)。我不知道该怎么做。
我可以实现switch
并允许用户设置生产或开发并只改变路径,但我猜这是不好的做法。
实际上,我在app.config
中存储了一条路径。有关如何实现这一点的任何建议,或者是向用户发送两个dll
的唯一方法,一个用于生产,一个用于开发?
答案 0 :(得分:1)
执行此操作的正确方法是:
示例配置:
<add key="apiUrl" value="http://localhost/myapi" />
和相应的转换文件
<add key="apiUrl" value="http://devhost/myapi" xdt:Transform="Replace" xdt:Locator="Match(key)" />
您可以使用SlowCheetah之类的插件进行转换。
或者,您也可以使用MSBuild tasks进行转换:
<UsingTask TaskName="TransformXml"
AssemblyFile="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.Tasks.dll"/>
<Target Name="TransformWebConfig">
<TransformXml Source="C:\myapp\app.config"
Transform="C:\myapp\app.dev.config"
Destination="C:\myapp\bin\<web.config or in case of exe, product.exe.config>"
StackTrace="true" />
</Target>
注意: .Net中的DLL文件不能包含配置文件。所以我假设你指的是产品的exe或web.config。
答案 1 :(得分:0)
条件编译可以是一个选项。
设置起来并不难。一篇好文章是:
http://www.codeproject.com/Articles/451734/Visual-Studio-Use-Conditional-Compilation-to-Contr