我很擅长.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仍然存在。
这是正常的吗?我如何才能使其行为与其他网络转换类似?
答案 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/52277和Use Visual Studio web.config transform for debugging