Asked  6 Months ago    Answers:  5   Viewed   75 times

For Visual Studio 2010 Web based application we have Config Transformation features by which we can maintain multiple configuration files for different environments. But the same feature is not available for App.Config files for Windows Services/WinForms or Console Application.

There is a workaround available as suggested here: Applying XDT magic to App.Config.

However it is not straightforward and requires a number of steps. Is there an easier way to achieve the same for app.config files?

 Answers

99

This works now with the Visual Studio AddIn treated in this article: SlowCheetah - Web.config Transformation Syntax now generalized for any XML configuration file.

You can right-click on your web.config and click "Add Config Transforms." When you do this, you'll get a web.debug.config and a web.release.config. You can make a web.whatever.config if you like, as long as the name lines up with a configuration profile. These files are just the changes you want made, not a complete copy of your web.config.

You might think you'd want to use XSLT to transform a web.config, but while they feels intuitively right it's actually very verbose.

Here's two transforms, one using XSLT and the same one using the XML Document Transform syntax/namespace. As with all things there's multiple ways in XSLT to do this, but you get the general idea. XSLT is a generalized tree transformation language, while this deployment one is optimized for a specific subset of common scenarios. But, the cool part is that each XDT transform is a .NET plugin, so you can make your own.

<?xml version="1.0" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="@*|node()">
  <xsl:copy>           
    <xsl:apply-templates select="@*|node()"/>
  </xsl:copy>
</xsl:template>
<xsl:template match="/configuration/appSettings">
  <xsl:copy>
    <xsl:apply-templates select="node()|@*"/>
    <xsl:element name="add">
      <xsl:attribute name="key">NewSetting</xsl:attribute>
      <xsl:attribute name="value">New Setting Value</xsl:attribute>
    </xsl:element>
  </xsl:copy>
</xsl:template>
</xsl:stylesheet>

Or the same thing via the deployment transform:

<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
   <appSettings>
      <add name="NewSetting" value="New Setting Value" xdt:Transform="Insert"/>
   </appSettings>
</configuration>
Tuesday, June 1, 2021
 
Palladium
answered 6 Months ago
43

I got reports and a report project (.rtproj) to work in Visual Studio 2010 with SQL Server 2008 R2! It will presumably work in any combination of VS 2010/2012 with SQL Server 2008 (R2) or SQL Server 2012.

  1. Install Visual Studio 2010 PLUS SP1.
  2. Install SQL Server Data Tools (SSDT)
  3. Install SQL Server 2012 with Data Tools and Reporting Services. (I used the trial version)

Now I can use Visual Studio 2010 for editing and deploying reports, even to SQL Server 2008 R2 (and likely other versions).

For older SQL Server Reporting Service versions there is still a question of whether there is anything new or unsupported in the VS10/12 report editor project.

Wednesday, August 4, 2021
 
Andrew
answered 4 Months ago
92

VSCode added a way to do this now. You can edit your settings.json (ctrl+shift+p) and then add the following for the desired effect:

"html.format.wrapAttributes": "force-aligned"

--or--

"html.format.wrapAttributes": "force"

force-aligned will also add indents to align it with the attribute on the line where tag was opened.

Visit this link for more details or updates.

Monday, August 9, 2021
 
suneet
answered 4 Months ago
50
  • Enable build verbosity (Tools -> Options -> Projects and Solutions -> Build and Run) and see the difference between the version that is working and the one that is not.

  • To my knowledge, slow-Cheetah supports config transforms for the app.config files but not web.configs on debug at present. It should put a transformed web.config file in the bin folder of your project but your project still reads from the config file in the root folder. Please have a look at pre/post build events at http://sedodream.com/CommentView,guid,68b7e248-b9f5-4d07-bdfe-eb037bcf2cbb.aspx.

  • You can request for web config transform support on debug at
    https://github.com/sayedihashimi/slow-cheetah/issues/39

  • Try re-installing Slow-Cheetah.

Monday, August 9, 2021
 
aorfevre
answered 4 Months ago
20

SlowCheetah doesn't support website projects. What behavior were you envisioning here for website projects? For WAP projects they are kicked in during package/publish. For the Web deployment project suggestion I have created an issue to track that at https://github.com/sayedihashimi/slow-cheetah/issues/4, but I'm not sure how that would actually work. I'll have to think about that for a bit.

Update

Website project now has the same publishing support as Web application project, http://blogs.msdn.com/b/webdev/archive/2012/11/20/new-web-publish-updates.aspx, if you would like SlowCheetah to support transforming XML files please vote for it at: https://slowcheetah.uservoice.com/forums/185106-general/suggestions/3398137-support-for-website-project

Friday, November 5, 2021
 
hoof_hearted
answered 3 Weeks ago
Only authorized users can answer the question. Please sign in first, or register a free account.
Not the answer you're looking for? Browse other questions tagged :  
Share