标签: slowcheetah

用于预览配置文件转换的工具

是否有任何工具或Visual Studio 2010扩展允许我查看配置文件转换的输出,而不必发布整个项目?执行转换的过程是否可以直接调用?


编辑

经过一番谷歌搜索,我发现了这个:

步骤4:从命令行为"Staging"环境生成新的转换后的web.config文件

通过转到开始 - >程序文件 - > Visual Studio v10.0 - > Visual Studio工具 - > Visual Studio 10.0命令提示符打开Visual Studio命令提示符

键入"MSBuild"应用程序项目文件的路径(.csproj/.vbproj)"/ t:TransformWebConfig/p:Configuration = Staging"并按Enter键,如下所示:

命令行web.config转换

转换成功后,"Staging"配置的web.config将存储在项目根目录下的obj - > Staging文件夹下(在解决方案资源管理器中,您可以通过首先取消隐藏隐藏文件来访问此文件夹):

转换了web.config

  • 在解决方案资源管理器中,单击按钮以显示隐藏文件
  • 打开Obj文件夹
  • 导航到您的活动配置(在我们当前的情况下,它是"暂存")
  • 你可以在那里找到转换后的web.config

您现在可以验证生成的新staging web.config文件是否具有已更改的连接字符串部分.

来源:Web部署:Web.Config Transformation

这对我来说并不是一个完美的解决方案,因为它仍然需要构建整个项目 - 至少使用他发布的命令.如果有人知道如何跳过使用MSBuild命令的构建步骤会有所帮助(尽管听起来有点不太可能).

编辑2

我还在CodePlex上找到了这个配置转换工具,它提供了一些很好的功能来扩展转换过程.这个工具是我所见过的最接近我正在寻找的功能的工具,并且是开发创建预览的扩展的一个很好的起点.它使用Microsoft.Web.Publishing.Tasks库来执行转换,而不依赖于构建实际项目.

web-config configuration-files visual-studio-2010 slowcheetah

14
推荐指数
2
解决办法
2632
查看次数

如何像web.config一样转换log4net配置?

从我的.csproj文件:

<Content Include="log4net.config">
  <SubType>Designer</SubType>
</Content>
<Content Include="log4net.Release.config">
  <DependentUpon>log4net.config</DependentUpon>
</Content>
<Content Include="log4net.Debug.config">
  <DependentUpon>log4net.config</DependentUpon>
</Content>
<Content Include="log4net.Live.config">
  <DependentUpon>log4net.config</DependentUpon>   
</Content>
<Content Include="log4net.Demo.config">
  <DependentUpon>log4net.config</DependentUpon>   
</Content>  
Run Code Online (Sandbox Code Playgroud)

在我的.csproj文件的底部:

  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
  <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />
    <Target Name="AfterCompile" Condition="exists('log4net.$(Configuration).config')">
      <TransformXml Source="log4net.config"
        Destination="$(IntermediateOutputPath)$(TargetFileName).config"
        Transform="log4net.$(Configuration).config" />
      <ItemGroup>
        <AppConfigWithTargetPath Remove="log4net.config"/>
        <AppConfigWithTargetPath Include="$(IntermediateOutputPath)$(TargetFileName).config">
          <TargetPath>$(TargetFileName).config</TargetPath>
        </AppConfigWithTargetPath>
      </ItemGroup>
    </Target>
Run Code Online (Sandbox Code Playgroud)

来自log4net.config

<connectionString name="ConnName" 
value="Data Source=localhost\sqlexpress;Initial Catalog=localdb;Persist Security Info=True;Integrated Security=SSPI;" />
Run Code Online (Sandbox Code Playgroud)

从log4net.Live.config(删除敏感数据)

<?xml version="1.0" encoding="utf-8"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
    <connectionString name="ConnName" value="Data Source=127.0.0.1;Initial Catalog=DBName;Persist Security Info=True;User ID=userid;Password=pword"
        providerName="System.Data.SqlClient" xdt:Transform="Replace" xdt:Locator="Match(name)" />
</configuration>
Run Code Online (Sandbox Code Playgroud)

我检查了msbuild输出,我看到它正确地转换了我的web.config,但我看到没有输出它转换log4net.此外,当我在发布后检查log4net.config文件时,它具有原始连接字符串.

我究竟做错了什么 :)?

谢谢!

更新 …

asp.net msbuild configuration visual-studio-2010 slowcheetah

13
推荐指数
3
解决办法
1万
查看次数

App.config替换单元测试

我的持续集成服务器(TeamCity)配置为在构建中运行我们的应用程序中的所有单元测试.在运行这些测试之前,我需要更改一些appSettings以使它们对我们的CI服务器有效.通过使用随Visual Studio提供的部署项目,我正在为我的Web项目实现类似的功能.我可以为测试项目做同样的事吗?

谢谢,贡萨洛

c# msbuild visual-studio webdeploy slowcheetah

12
推荐指数
3
解决办法
6340
查看次数

无法使用Transform删除Web.Config节点

我有一个包含重写规则的web.config,如下所示:

<system.webServer>
    <rewrite>
      <rules><!-- Some rules here --></rules>
    </rewrite>
</system.webServer>
Run Code Online (Sandbox Code Playgroud)

对于特定的部署配置,我想<rewrite>完全删除该节点.

我试过这样做:

<system.web>
    <rewrite xdt:Transform="RemoveAll" />
</system.web>    
Run Code Online (Sandbox Code Playgroud)

基于此文档:

http://msdn.microsoft.com/en-us/library/dd465326.aspx

<rewrite>节点仍然存在.

我错过了什么?

visual-studio-2010 web-deployment slowcheetah

12
推荐指数
1
解决办法
7406
查看次数

转换3个不同环境的app.config

我需要能够使用msbuild转换我的app.config文件.我可以转换文件,如果它被称为app.DEBUG.config或app.Release.config,但我不能添加一个名为app.PROD.config的文件.

使用常规XDT转换如果我选择不同的PublishProfile,msbuild会识别不同的web.config文件

 msbuild path.to.project.csproj Configuration=Release PublishProfile=DEV
Run Code Online (Sandbox Code Playgroud)

显然app.config不能使用相同的设置.我总是可以为DEV.config设置创建一个特定的构建配置,但对一个应用程序进行单独的构建确认似乎没用.一个hacky方法是只为每个环境POST-BUILD复制正确的app.config.

我试图使用SlowCheetah插件,但这似乎只是转换默认的DEBUG和RELEASE配置文件,这是不合适的,因为我有两个以上的环境.如果我确实使用了这个错误,请让我知道我应该将哪个参数传递给msbuild来选择我的app.DEV.config.

预期的结果是msbuild将根据自定义的变换app.DEV.config或为app.PROD.config自定义的变换来变换app.config.我希望有一个参数可以传递给msbuild,这将允许我使用Release配置,但每个环境使用不同名称的转换.

.net c# msbuild slowcheetah xdt-transform

12
推荐指数
3
解决办法
3万
查看次数

如何使用新的VS 2010配置转换并将其应用于其他.config文件?

我已经在我的web.config中为我的connectionStrings等设置了一些配置转换.但是我已将web.config的某些区域分离为单独的文件,例如appSettings.config.

如何配置Visual Studio和MSBuild以对这些附加配置文件执行配置转换?

我已经按照web.config的方法在我的Web应用程序项目文件中将文件关联在一起,但不会自动应用转换.

<ItemGroup>
    <Content Include="appSettings.Debug.config">
        <DependentUpon>appSettings.config</DependentUpon>
    </Content>
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)

msbuild web-config visual-studio-2010 slowcheetah

10
推荐指数
2
解决办法
4271
查看次数

自动慢速猎豹构建方法

我不想在所有构建服务器上安装Slow Cheetah.

我们正在使用Slow Cheetah进行配置转换,它工作得很好.它会生成多个app.config文件,我们会根据需要对它们进行更改.

我们设置了几台服务器.所有这些都有他们的代码库,他们从命令行中提取代码并相应地构建包.这些代码中包含那些配置文件.但是当我们从命令行编译应用程序时,如果没有安装慢速猎豹,则不会使用转换生成包.否则它工作正常.

我们永远都不知道我们何时设置新服务器和新用户,因此无法在每个服务器上安装慢速猎豹

有可能以某种方式在应用程序中使用慢速猎豹dll并从中手动调用转换方法?

谢谢

msbuild build-automation build-process config-transformation slowcheetah

9
推荐指数
3
解决办法
1万
查看次数

如何在Web项目中使用慢速猎豹转换配置文件

所以我想要完成的是转换构建中的所有配置文件.

  • Web.config文件
  • App.config中
  • .... config.xml中

在项目文件中,它们看起来像这样:

<None Include="FooBar.config.xml">
  <TransformOnBuild>true</TransformOnBuild>
</None>
<None Include="FooBar.config.Release.xml">
  <DependentUpon>FooBar.config.xml</DependentUpon>
  <IsTransformFile>True</IsTransformFile>
</None>
Run Code Online (Sandbox Code Playgroud)

一切都适用于Windows服务和Windows应用程序.但对于网络项目来说,慢速猎豹并没有进行变革.经过一些研究后,我发现:"对于Web项目,当您发布或打包应用程序时,文件会被转换." 从慢速猎豹扩展页面.事实上,当我发布Web项目时,转换正确完成.

那么如何更改慢速猎豹默认行为并在构建服务器上执行所有变换?

环境:

  • TFS 2010
  • 构建服务器上的慢速猎豹版本:1.0.10727.0

msbuild slowcheetah

9
推荐指数
1
解决办法
7802
查看次数

可以通过configSource链接到web.config的部分配置文件在Web项目中转换吗?

寻找任何与SlowCheetah合作的人在Web项目下转换配置文件的帮助.我们发现从web.config引用的部分配置文件没有被转换.

例如,我们在web.config中包含对部分配置AppSettings.config和ConnectionsString.config的引用,如下所示:

  </system.web>
  <connectionStrings configSource ="ConnectionsString.config"></connectionStrings>
  <appSettings configSource ="AppSettings.config"></appSettings>
</configuration>
Run Code Online (Sandbox Code Playgroud)

然后在AppSettings.config中我们只有AppSettings部分,如下所示:

<appSettings>
  <add key="LostPasswordBCC" value="knock@timmons.com" />
</appSettings>
Run Code Online (Sandbox Code Playgroud)

最后在转换文件AppSettings.Debug.config中我们有一些补充:

<?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">
  <appSettings >
    <add key="Release" value="Something" xdt:Transform="Insert" />
  </appSettings>
</configuration>
Run Code Online (Sandbox Code Playgroud)

显然上面只是一个测试,看看转换发生了,但我们发现的是,在尝试预览转换时,我们得到的所有内容都是错误"处理转换时出错".发布尝试也失败了.

如果我们使配置文件完全形成xml而不是从web.config引用,那么转换似乎工作正常 - 但是希望在多个项目之间共享这些文件.

有没有人知道是否有一个解决方法,我们既可以从web.config引用部分配置,也可以转换那些部分文件?我们正在处理遗留代码,其中包含大量尝试合并的Web项目中的配置文件,因此需要从Web配置链接到单独的共享文件.

xslt web-config transform appsettings slowcheetah

8
推荐指数
1
解决办法
1786
查看次数

SlowCheetah:类库项目中的已转换文件未复制到引用的项目

场景:

我有一个带有自定义.config文件的类库项目.这些配置文件的构建操作设置为"内容"和"始终复制".然后,在同一解决方案中的至少4-5个控制台应用程序中引用此库项目.构建解决方案时,类库的程序集和自定义配置文件将复制到引用的项目bin文件夹中.

我想做什么:

使用SlowCheetah转换自定义配置文件

问题:

虽然SlowCheetah转换了类库项目中的配置文件,但它不会将转换后的文件复制到引用的项目中.即它始终复制源/原始文件.

找到了几个其他线程,但没有一个是基于SlowCheetah的解决方案,任何建议都会有所帮助.请注意,我使用的是Install Shield Limited Edition,因此该解决方案需要适用于.msi/setup文件.此外,我不想链接文件并对链接文件应用转换,因为我将不得不对所有引用的项目进行相同的转换.

谢谢

app-config config-transformation slowcheetah

8
推荐指数
1
解决办法
1111
查看次数