WebAPI项目似乎没有将转换后的web.config发布到bin文件夹?

时间:2013-08-06 00:54:08

标签: msbuild asp.net-web-api web-config web-config-transform slowcheetah

我很擅长.NET配置转换。我现在将它们放在用于数据使用的类库和WPF应用程序上。

但是,当我尝试使用ASP.NET WebAPI项目进行设置时,似乎发生了一些奇怪的事情。

配置文件永远不会显示在我的bin目录中,因此web.config始终显示为预先形成的配置文件。

如果我在csproj上运行参数为“/ t:TransformWebConfig / pConfiguration = Test”的MSbuild,我会看到以下内容:

  

CollectWebConfigsToTransform:找到以下Config   转换:Areas \ HelpPage \ Views \ Web.config,Web.config,   Views \ Web.config,bin \ Web.config PreTransformWebConfig:跳过复制   Web.config到obj \ Test \ TransformWebConfig \ original \ Web.config,File   obj \ Test \ TransformWebConfig \ original \ Web.config是最新的Skip   复制C:\ Users \ killesj1 \ Repositories \ MRP Trunk \ Macro   Projects \ VEUploader \ src \ app \ VEUploader.WebAPI \ Web.config to   obj \ Test \ TransformWebConfig \ original \ bin \ Web.config,File   OBJ \测试\ TransformWebConfig \原有\ BIN \网络。配置是最新的   TransformWebConfigCore:跳过目标“TransformWebConfigCore”   因为所有输出文件都相对于输入是最新的   文件。 TransformWebConfigCore:跳过目标   “TransformWebConfigCore”因为所有输出文件都是最新的   尊重输入文件。 PostTransformWebConfig:已转换   Web.config使用Web.Test.config进入   OBJ \测试\ TransformWebConfig \转化\ Web.config文件。转化   C:\ Users \ killesj1 \ Repositories \ MRP Trunk \ Macro   使用项目\ VEUploader \ src \ app \ VEUploader.WebAPI \ Web.config   C:\ Users \ killesj1 \ Repositories \ MRP Trunk \ Macro   Projects \ VEUploader \ src \ app \ VEUploader.WebAPI \ Web.Test .config into   OBJ \测试\ TransformWebConfig \转化\ BIN \ Web.config中。

似乎转换正在转换文件,但不知怎的,它没有回到bin目录,旧的Web.config仍然存在。

这是正常的吗?我如何才能使其行为与其他网络转换类似?

2 个答案:

答案 0 :(得分:0)

我遇到了类似的问题,在Appveyor上部署了没有被转换的测试项目,并按照下面链接中的建议进行操作,现在一切正常。我已经将所有项目设置为在[Target Name =" AfterBuild"]中进行xxx.config转换,并且它在我的本地开发机器上完美运行,但是在将代码推送到Appveyor时,测试将失败因为未转换的文件等。基本上,将所有内容移动到[目标名称=" BeforeBuild"]并查看是否有帮助。

MSBuild - how to force "AfterBuild" target when I do deployment?

答案 1 :(得分:-1)

web.config通常位于根目录中,不会复制到bin子文件夹。要应用转换,您需要使用一些模板web.config并将其转换为root web.config。 例如。请参阅https://stackoverflow.com/a/16239488/52277Use Visual Studio web.config transform for debugging