I am confused by the rapid pace and terrific work done by Sayed Hashimi and company on SlowCheetah, specifically whether or not SlowCheetah is able to transform files on Build instead of just Package and Publish.
I have SlowCheetah installed and am able to auto-generate the build configuration instances for app.config of a console application I am working with the development team to deploy. On build, a new "SlowCheetah" directory is created under the $(ProjectDir)\obj\x86\$(BuildConfig) directory. The obj\x86\STAGE\SlowCheetah directory, for instance, contains an app.config file with the transform completed as indicated when right clicking the STAGE transform and selecting "View Transforms".
The \bin\$(BuildConfig) directory, however, contains the untransformed app.config file as well as all of the templates for each of the $(BuildConfig) transformations - instead of replacing the app.config file in the bin\x86\STAGE directory with the one from SlowCheetah.
The build completes without error.
Is this the expected action, or is something still not working correctly?
@sayed-ibrahim-hashimi Each $(Configuration) has a transform. The transforms displays properly when viewing in Visual Studio, and is properly transformed in the \slowcheetah directory under the \obj directory tree. Examples of transforms are:
<?xml version="1.0" encoding="utf-8" ?>
<!-- For more information on using transformations see the web.config examples at http://go.microsoft.com/fwlink/?LinkId=214134. -->
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform
<connectionStrings>
<add name="Portal" connectionString="Data Source=transformtestserver.domain.local;Initial Catalog=TestDB;User Id=TestUser;Password=testpw1;" xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
<add name="DictionaryDatabase" connectionString="Data Source=transformtestserver.domain.local;Initial Catalog=TestDB;User Id=TestUser;Password=testpw2;" xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
<add name="LoggingDatabase" connectionString="Data Source=transformtestserver.domain.local;Initial Catalog=TestDB;User Id=TestUser;Password=testpw3;" xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
</connectionStrings>
</configuration>
The problem may be related to the Nuget/solution configuration. The project I am working with is one part of a very large solution. I had a difficult time getting SlowCheetah installed and working - at one point finding Nuget said SlowCheetah was installed but the solution package directory did not contain SlowCheetah.
I setup a workaround in TeamCity to pickup the transformed app.config file from the \obj directory, but would really like to resolve the problem so I can rollout SC to the full development group. Is there a verbose log we can look at that might point out the details?