0

我在 .NET 配置转换方面做得很好。我现在将它们放在用于数据使用的类库和 WPF 应用程序中。

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

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

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

CollectWebConfigsToTransform:找到以下配置转换:Areas\HelpPage\Views\Web.config、Web.config、Views\Web.config、bin\Web.config PreTransformWebConfig:跳过将 Web.config 复制到 obj\Test\TransformWebConfig\original\ Web.config,文件 obj\Test\TransformWebConfig\original\Web.config 是最新的 跳过复制 C:\Users\killesj1\Repositories\MRP Trunk\Macro Projects\VEUploader\src\app\VEUploader.WebAPI\Web.config到 obj\Test\TransformWebConfig\original\bin\Web.config,文件 obj\Test\TransformWebConfig\original\bin\Web。配置是最新的 TransformWebConfigCore:跳过目标“TransformWebConfigCore”,因为所有输出文件相对于输入文件都是最新的。TransformWebConfigCore:跳过目标“TransformWebConfigCore” 因为所有输出文件相对于输入文件都是最新的。PostTransformWebConfig:使用 Web.Test.config 将 Web.config 转换为 obj\Test\TransformWebConfig\transformed\Web.config。使用 C:\Users\killesj1\Repositories\MRP Trunk\Macro Projects\VEUploader\src\app 转换 C:\Users\killesj1\Repositories\MRP Trunk\Macro Projects\VEUploader\src\app\VEUploader.WebAPI\Web.config \VEUploader.WebAPI\Web.Test .config 到 obj\Test\TransformWebConfig\transformed\bin\Web.config。

似乎转换正在转换文件,但不知何故,它并没有回到旧 Web.config 所在的 bin 目录中。

这是正常的吗?我怎样才能让它表现得与其他网络转换相似?

4

2 回答 2

0

我有一个类似的问题,在没有被转换的 Appveyor 上部署测试项目,并遵循下面链接中的建议,现在一切正常。我将所有项目设置为在 [Target Name="AfterBuild"] 中进行 xxx.config 转换,并且它在我的本地开发机器上运行良好,但是在将代码推送到 Appveyor 时,由于未转换的文件等,测试会失败. 基本上,将所有内容移至 [Target Name="BeforeBuild"] 看看是否有帮助。

MSBuild - 我进行部署时如何强制“AfterBuild”目标?

于 2015-03-27T22:00:54.153 回答
-1

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

于 2013-10-21T06:41:15.857 回答