http://udiostgallery.msdn.microsoft.com/69023d00-a4f9-4a34-a6cd-7e854ba318b5“rel=“noreferer”>。 关于如何使用SlowCheetah的更多备选办法和细节,请随时阅读。
如你已经注意到的那样,对于图书馆类型(dll)项目,没有缺省办法使用不同的组合文件。 原因是目前的想法是:“你不需要”! 框架制定者认为,你需要的是可执行档案的配置:它是一种专线、台式、网络、移动器或其他东西。 如果你开始为dll<>>/em>提供配置,你可以最后用我可以称之为config hell的内容。 你们可能不再理解(很简单)为什么这一点,以及这些变数似乎来自任何地方的这种超常的价值观。
“过去”——你可以说,“但我需要做我的整合/unit测试,t>是一个图书馆”。 确实如此,这是你可以做的(仅举一例,不混杂):
1. SlowCheetah - transforms current config file
您可安装SlowChetah - 视觉演播室插播,为你提供低水平XML p(或转化)。 The way of it work, brief:
- Install SlowCheetah and restart Visual Studio (Visual Studio > Tools > Extensions and Updates ... > Online > Visual Studio Gallery > search for "Slow Cheetah" )
- Define your solution configurations (Debug and Release are there by default), you can add more (right click on the solution in Solution Explorer > Configuration Manager... > Active Solution Configuration > New...
- Add a config file if needed
- Right click on config file > Add Transform
- This will create Transformation files - one per your configuration
- Transform files work as injectors/mutators, they find needed XML code in the original config file and inject new lines or mutate needed value, whatever you tell it to do
2. Fiddle with .proj file - copy-renames a whole new config file
最初摘自here。 它是一项惯例,由您将这项任务纳入视觉演播室.proj档案。 项目档案中复制和编辑以下代码
<Target Name="AfterBuild">
<Delete Files="$(TargetDir)$(TargetFileName).config" />
<Copy SourceFiles="$(ProjectDir)ConfigApp.$(Configuration).config"
DestinationFiles="$(TargetDir)$(TargetFileName).config" />
</Target>
现在,在名为<代码>Config的项目中创建了一个文件夹,并在其中添加新的文件:App.Debug.config,App.Release.config等。 现在,视您的配置而定,视频演播室将从<代码>Config的复印件中选取书面材料,并将其贴在产出目录中。 因此,如果您选择了PatternPA. 试验.Integration <>m>项目和Debugconfig,将找到一个PatternPA. 试验.Integration.dll.config文档,该文档由复制。 ConfigApp.Debug.config
, 后改名。
这些是你可以在汇合档案中留下的一些笔记。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<!-- This file is copied and renamed by the AfterBuild MSBuild task -->
<!-- Depending on the configuration the content of projectName.dll.config
is fully substituted by the correspondent to build configuration file
from the Config directory. -->
</configuration>
在视觉演播室,你可以有这样的东西。
3. Use scripting files outside Visual Studio
每个建筑工具(如,)将提供根据配置改变编组文档的能力。 如果你在建筑机器上找到解决办法,那么这样做是有用的,因为你需要更多地控制产品的内容和如何准备释放。
例如,你可以利用网上印刷机改造任何集束文档。
<UsingTask AssemblyFile=".. oolsuildMicrosoft.Web.Publishing.Tasks.dll"
TaskName="TransformXml"/>
<PropertyGroup>
<!-- Path to input config file -->
<TransformInputFile>path to app.config</TransformInputFile>
<!-- Path to the transformation file -->
<TransformFile>path to app.$(Configuration).config</TransformFile>
<!-- Path to outptu web config file -->
<TransformOutputFile>path to output project.dll.config</TransformOutputFile>
</PropertyGroup>
<Target Name="transform">
<TransformXml Source="$(TransformInputFile)"
Transform="$(TransformFile)"
Destination="$(TransformOutputFile)" />
</Target>