ใช้ปลั๊กอินSlowCheetah สำหรับตัวเลือกเพิ่มเติมและรายละเอียดเกี่ยวกับวิธีใช้ SlowCheetah อ่านต่อ
ที่คุณได้สังเกตเห็นแล้วไม่มีค่าเริ่มต้นและวิธีที่ง่ายต่อการใช้ config ไฟล์ที่แตกต่างกันสำหรับประเภท Library (.dll)โครงการ เหตุผลก็คือความคิดในปัจจุบันคือ: "คุณไม่จำเป็นต้อง"! นักพัฒนากรอบคิดว่าคุณต้องมีการกำหนดค่าสำหรับไฟล์ปฏิบัติการไม่ว่าจะเป็นคอนโซลเดสก์ท็อปเว็บแอปมือถือหรืออย่างอื่น หากคุณเริ่มต้นให้การกำหนดค่าสำหรับdllคุณอาจจบลงด้วยสิ่งที่ฉันสามารถเรียกนรกการตั้งค่า คุณอาจไม่เข้าใจอีกต่อไป (ง่ายๆ) ว่าทำไมจึงเป็นเช่นนี้และตัวแปรนั้นมีค่าแปลก ๆ เช่นนี้ดูเหมือนจะมาจากไหน
"เดี๋ยวก่อน" - คุณอาจพูดว่า "แต่ฉันต้องการสิ่งนี้สำหรับการทดสอบการผสานรวม / หน่วยของฉันและมันคือไลบรารี!" และนั่นคือความจริงและนี่คือสิ่งที่คุณทำได้ (เลือกเพียงอันเดียวอย่าผสม):
1. SlowCheetah - แปลงไฟล์ config ปัจจุบัน
คุณสามารถติดตั้งSlowCheetahซึ่งเป็นปลั๊กอิน Visual Studio ที่ทำการจิ้ม XML ระดับต่ำทั้งหมดให้กับคุณ วิธีการทำงานสั้น ๆ :
- ติดตั้ง SlowCheetah และรีสตาร์ท Visual Studio (Visual Studio> Tools> Extensions and Updates ... > Online> Visual Studio Gallery> ค้นหา "Slow Cheetah")
- กำหนดการตั้งค่าคอนฟิกโซลูชันของคุณ ( ดีบักและรีลีสจะอยู่ที่นั่นโดยค่าเริ่มต้น) คุณสามารถเพิ่มได้ (คลิกขวาที่โซลูชันในSolution Explorer > Configuration Manager ... > Active Solution Configuration > New ...
- เพิ่มไฟล์กำหนดค่าหากจำเป็น
- คลิกขวาที่ไฟล์กำหนดค่า> เพิ่มการแปลง
- สิ่งนี้จะสร้างไฟล์การแปลง - หนึ่งไฟล์ต่อการกำหนดค่าของคุณ
- แปลงไฟล์ทำงานเป็นหัวฉีด / mutators พวกเขาพบรหัส XML ที่จำเป็นในไฟล์กำหนดค่าดั้งเดิมและฉีดขึ้นบรรทัดใหม่หรือเปลี่ยนค่าที่ต้องการไม่ว่าคุณจะสั่งให้ทำอะไรก็ตาม
2. Fiddle กับไฟล์. proj - คัดลอก - เปลี่ยนชื่อไฟล์กำหนดค่าใหม่ทั้งหมด
แต่เดิมที่นำมาจากที่นี่ เป็นงาน MSBuild แบบกำหนดเองที่คุณสามารถฝังลงในไฟล์Visual Studio .proj คัดลอกและวางรหัสต่อไปนี้ลงในไฟล์โครงการ
<Target Name="AfterBuild">
<Delete Files="$(TargetDir)$(TargetFileName).config" />
<Copy SourceFiles="$(ProjectDir)\Config\App.$(Configuration).config"
DestinationFiles="$(TargetDir)$(TargetFileName).config" />
</Target>
ตอนนี้สร้างโฟลเดอร์ในโครงการที่เรียกว่าConfig
และเพิ่มไฟล์ใหม่ที่นั่น: App.Debug.config , App.Release.configและอื่น ๆ ขณะนี้ขึ้นอยู่กับการกำหนดค่าของคุณ Visual Studio จะเลือกไฟล์ config จากConfig
โฟลเดอร์และคัดลอกเปลี่ยนชื่อลงในไดเร็กทอรีเอาต์พุต ดังนั้นหากคุณมีโปรเจ็กต์ PatternPA.Test.Integrationและการกำหนดค่าDebug ที่เลือกไว้ในโฟลเดอร์ผลลัพธ์หลังการสร้างคุณจะพบไฟล์PatternPA.Test.Integration.dll.configซึ่งถูกคัดลอกConfig\App.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>
ใน Visual Studio คุณสามารถมีสิ่งนี้ได้
3. ใช้ไฟล์สคริปต์ภายนอก Visual Studio
เครื่องมือสร้างแต่ละตัว (เช่นNAnt , MSBuild ) จะให้ความสามารถในการแปลงไฟล์ config โดยขึ้นอยู่กับการกำหนดค่า สิ่งนี้มีประโยชน์หากคุณสร้างโซลูชันของคุณบนเครื่องบิลด์ซึ่งคุณต้องมีการควบคุมมากขึ้นว่าคุณเตรียมผลิตภัณฑ์สำหรับวางจำหน่ายอย่างไรและอย่างไร
ตัวอย่างเช่นคุณสามารถใช้งาน dll ของการเผยแพร่เว็บเพื่อแปลงไฟล์ config ใด ๆ
<UsingTask AssemblyFile="..\tools\build\Microsoft.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>