我需要能够使用 msbuild 转换我的 app.config 文件。如果文件名为 app.DEBUG.config 或 app.Release.config,我可以转换该文件,但如果添加一个名为 app.PROD.config 的文件,我就不能转换该文件。
如果我选择不同的 PublishProfile,使用常规 XDT 转换 msbuild 会识别不同的 web.config 文件
msbuild path.to.project.csproj Configuration=Release PublishProfile=DEV
显然 app.config 不适用于相同的设置。我总是可以为 DEV.config 设置创建特定的构建配置,但为一个应用程序进行单独的构建确认似乎毫无用处。一种巧妙的方法是在构建后为每个环境复制正确的 app.config。
我尝试使用 SlowCheetah 插件,但这似乎只会转换默认的 DEBUG 和 RELEASE 配置文件,这是不合适的,因为我有两个以上的环境。如果我确实使用了这个错误,请告诉我应该向 msbuild 传递什么参数来选择我的 app.DEV.config。
预期结果是 msbuild 将根据名为 app.DEV.config 的自定义转换或为 app.PROD.config 自定义的转换来转换 app.config。我希望有一个参数可以传递给 msbuild,它允许我使用 Release 配置,但每个环境具有不同名称的转换。
我认为令人困惑的是我们有能力制造编译时配置转换然后我们有部署时配置转换.
通常,您使用编译时配置转换来更改本地默认的配置文件,以便它适合 DEBUG 或 RELEASE 配置(或您定义的任何自定义配置)。对于 web.config,该工具是内置的。对于 app.config,SlowCheetah Visual Studio 扩展 http://visualstudiogallery.msdn.microsoft.com/69023d00-a4f9-4a34-a6cd-7e854ba318b5为 app.config 带来了与 web.config 相同的功能。 RELEASE 配置的配置转换示例是删除 system.web 编译上的调试属性。
部署时配置转换是在部署到特定环境(例如 QA、PROD)时对配置文件的操作。数据库连接字符串需要更改、服务端点需要更改等...对于 web.config,MSDEPLOY 是首选的 IIS 工具。对于app.config,看来我们需要依赖安装程序技术。有不同的工具可以实现此目的,例如WIX http://wixtoolset.org/例如。
无论如何,我希望这个对编译时和部署时配置转换之间区别的简短解释有助于解释为什么工具集是支离破碎的。更深入的分析,可以参考我针对这个主题写的一篇博文:http://philippetruche.wordpress.com/2012/07/11/deploying-web-applications-to-multiple-environments-using-microsoft-web-deploy/ http://philippetruche.wordpress.com/2012/07/11/deploying-web-applications-to-multiple-environments-using-microsoft-web-deploy/
如果选择使用 WIX 工具集来生成安装程序,请参阅使用 Visual Studio 2012 和 Wix 创建多环境 Windows 安装程序 http://geekswithblogs.net/alexhildyard/archive/2013/03/10/creating-multi-environment-windows-installers-with-visual-studio-2012-and-wix.aspx.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)