我有一个项目,我试图使用SlowCheetah.我已经在我的构建配置中创建了我的配置文件(Test.web.config)和我想要使用的所有转换(Debug_Mock.config,Debug_SQL.config,Release)我有一个后期构建事件应该复制转换后的文件进入另一个目录但找不到该文件
(错误xcopy退出代码4)
SlowCheetah似乎没有像我期望的那样转换文件并将其放在输出目录(bin文件夹)中.有没有人有任何想法,为什么它没有发生,也许在某处设置?
仅供参考:此过程适用于具有相同项目的另一台计算机.至于我可以告诉同样的设置.但我可能没有找到正确的地方.
xml config-transformation slowcheetah xdt-transform web.config-transform
我有一个存储在我的web.config文件中的值,我想在网站发布时更改.我想将它从TEST更改为LIVE.
<appSettings>
<add key="RequestMode" value="TEST" />
// other keys here
</appSettings>
Run Code Online (Sandbox Code Playgroud)
这是否可以使用web.config转换语法?如果是这样,怎么样?
谢谢.
我认为这是一个简单的解决方案,因为我没有看到任何关于其他人有这个问题的帖子.我正在使用VS2012,我使用nuget软件包安装程序将slowcheetah 2.5.10.3添加到项目中.
我尝试打开一个新的控制台应用程序以及一个单元测试项目,但是我无法在我的App.config中"添加转换".上下文菜单中的选项不存在...

app-config config-transformation slowcheetah visual-studio-2012
我不想在所有构建服务器上安装Slow Cheetah.
我们正在使用Slow Cheetah进行配置转换,它工作得很好.它会生成多个app.config文件,我们会根据需要对它们进行更改.
我们设置了几台服务器.所有这些都有他们的代码库,他们从命令行中提取代码并相应地构建包.这些代码中包含那些配置文件.但是当我们从命令行编译应用程序时,如果没有安装慢速猎豹,则不会使用转换生成包.否则它工作正常.
我们永远都不知道我们何时设置新服务器和新用户,因此无法在每个服务器上安装慢速猎豹
有可能以某种方式在应用程序中使用慢速猎豹dll并从中手动调用转换方法?
谢谢
msbuild build-automation build-process config-transformation slowcheetah
场景:
我有一个带有自定义.config文件的类库项目.这些配置文件的构建操作设置为"内容"和"始终复制".然后,在同一解决方案中的至少4-5个控制台应用程序中引用此库项目.构建解决方案时,类库的程序集和自定义配置文件将复制到引用的项目bin文件夹中.
我想做什么:
使用SlowCheetah转换自定义配置文件
问题:
虽然SlowCheetah转换了类库项目中的配置文件,但它不会将转换后的文件复制到引用的项目中.即它始终复制源/原始文件.
找到了几个其他线程,但没有一个是基于SlowCheetah的解决方案,任何建议都会有所帮助.请注意,我使用的是Install Shield Limited Edition,因此该解决方案需要适用于.msi/setup文件.此外,我不想链接文件并对链接文件应用转换,因为我将不得不对所有引用的项目进行相同的转换.
谢谢
我正在建立一个Jenkins服务器来构建.NET项目.我们使用visual studio Web.config转换来转换每个环境(Dev1,Dev2,QA和Release)的配置文件.我在MSBuild命令中使用以下命令行参数,它正在使用转换:
/p:Configuration=Dev1;DeployOnBuild=true;DeployTarget=Package;_PackageTempDir=..\..\deploy\current\Dev1
Run Code Online (Sandbox Code Playgroud)
问题是我必须为每个环境重建解决方案,并且一些解决方案非常庞大并且需要一些时间来构建.我想只构建一次解决方案,然后只触发其他环境的转换.有没有人知道通过MSBuild批处理命令或其他方式在Jenkins中完成此操作的方法?
我有一个asp.net应用程序,它必须在SSL下运行,并且它在web.config中定义了一些重写规则来完成此任务.
<!--file web.config -->
....
</system.webServer>
<rewrite>
<rules configSource="webrewrite.config" />
</rewrite>
</system.webServer>
<!--file web.config -->
<rules>
....
<rule name="HTTP to HTTPS redirect" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="off" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" />
</rule>
....
</rules>
Run Code Online (Sandbox Code Playgroud)
但是,在开发模式(使用本地Web服务器或IIS Express)中,我不想使用SSL.所以我希望能够使用web.config转换来删除一个或多个重写规则(但不是全部)
我需要在web.config中的多个WCF服务中切换出IP地址。使用web.config转换,除了通过xpath指定每个地址之外,还有什么方法可以创建搜索和替换语句。例如,将1.2.3.4的所有实例的IP地址1.2.3.4切换为4.3.2.1
对于我的Play 2.2/Scala应用程序(使用SBT构建),我想根据我正在部署的环境部署不同的配置文件(例如,将部署与特定数据库服务器耦合).如何为不同的部署目标创建应用程序配置文件(conf/application.conf)的不同变体?希望可以从基础版本生成变体?
我从.NET习惯的是拥有一个基本配置文件(Web.config),它根据正在部署的配置文件(例如生产)进行一定的转换.是否在Play/Scala世界中使用类似的技术?
deployment sbt playframework config-transformation playframework-2.2
我正在使用以下(大大简化)的MSBuild脚本:
<?xml version="1.0"?>
<Project DefaultTargets="Transform" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<UsingTask TaskName="TransformXml" AssemblyFile="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.Tasks.dll" />
<Target Name="Transform">
<TransformXml Source="../web.config"
Transform="Config\Production\webapp.xml"
Destination="Config\Build\Production\web.config" />
</Target>
</Project>
Run Code Online (Sandbox Code Playgroud)
这非常适合转换单个配置文件,而无需通过MSDeploy.
但是,让我说在我的变换中我拼错了一个变量.我会收到一个警告:
C:\ MyApp\DevOps\Config\Production\webapp.xml(15,6):警告:源文档中的任何元素都不匹配'/ configuration/appSettings/add [@ key ='MyUnknownVariable']'[C:\ MyApp \的DevOps\ConfigBundle.msbuild]
虽然我们收到警告是很好的,但我真的需要这个错误,因为这将成为我们自动构建和部署过程的一部分,所以在应用程序停止工作之前,不太可能有人发现它.
我想要一种方法将这些警告视为错误.基于我在互联网上看到的一些东西,我尝试了一个带有两个不同TreatWarningsAsErrors符号的PropertyGroup:
<PropertyGroup>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<CodeAnalysisTreatWarningsAsErrors>true</CodeAnalysisTreatWarningsAsErrors>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)
我已经尝试在命令行上设置它(我怀疑它与上面相同):
C:\MyApp\DevOps>msbuild /p:TreatWarningsAsErrors="true" ConfigBundle.msbuild
Run Code Online (Sandbox Code Playgroud)
遗憾的是,这些都不起作用; 警告继续发送.基于这一点,我猜测它是由个人MSBuild任务来尊重TreatWarningsAsErrors指令,在这种情况下,TransformXml不会.
如果我能找到一种方法来了解上一个任务是否发出警告,例如我可以做以下事情:
<Message Text="##teamcity[message text='Config Transform Failed!' status='ERROR']" Condition="$WarningOccurred == 'true'" />
Run Code Online (Sandbox Code Playgroud)
它并不完美,但肯定会阻止构建成功完成.希望有人会对此有一个有用的建议.
目前我的web.config看起来像这样:
<configuration>
<connectionStrings configSource="connectionstrings.config"/>
</configuration>
Run Code Online (Sandbox Code Playgroud)
在生成部署包(Msbuild.exe + target = Package)时,它不会"神奇地"将我的连接字符串参数化到parameters.xml文件以进行部署时的替换.
当我内联我的连接线时,一切都很好,并为我的连接线生成参数..
所以:
如何通过web.config转换复制connectionstrings.config的内容作为部署<... configsource ="xxx"/>的替换?
编辑: 我接受了Sayed Ibrahim的答案,因为'默认'行为非常好(web.config中连接字符串的自动参数化)但最后更好地指定需要参数化的确切内容(通过{projectname} .wpp.targets或parameters.xml文件).
msbuild web-config msdeploy web-config-transform config-transformation
web-config ×5
msbuild ×4
slowcheetah ×4
app-config ×2
asp.net ×1
batch-file ×1
deployment ×1
jenkins ×1
msdeploy ×1
sbt ×1
xml ×1