我正在开发一个项目,我们正在使用web.config转换来维护特定于开发人员的配置数据,例如本地开发环境中的路径名。它对其他所有人都没有问题,但在过去的一周里,这个过程已经停止了。以下是触发转换的.csproj的相关部分:
<UsingTask TaskName="TransformXml" AssemblyFile="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.Tasks.dll" />
<Target Name="AfterBuild">
<TransformXml Source="Web.config" Transform="Web.$(Configuration).config" Destination="$(IntermediateOutputPath)Web.config" />
<ItemGroup>
<FilesToDelete Include="$(ChoaPhysiciansPortalWebsitePath)\App_Config\Include\PhysiciansPortal\**\*;$(ChoaPhysiciansPortalWebsitePath)\Views\**\*;$(ChoaPhysiciansPortalWebsitePath)\Content\**\*;$(ChoaPhysiciansPortalWebsitePath)\Scripts\**\*;$(ChoaPhysiciansPortalWebsitePath)\Areas\PhysiciansPortal\**\*;" />
</ItemGroup>
<Delete Files="@(FilesToDelete)" />
<CreateItem Include="App_Config\**\*;*.asax;Views\**\*.config;Views\**\*.cshtml;Layouts\*.cshtml;Content\bootstrap\css\*;Content\bootstrap\fonts\*;Content\bootstrap\js\*;Content\css\*.css;Scripts\*;Content\Images\*;Content\fonts\*;Areas\PhysiciansPortal\Views\**\*.cshtml;Areas\PhysiciansPortal\Views\**\*.config;bin\Choa.PhysiciansPortal*.dll;bin\Choa.PhysiciansPortal*.pdb;bin\Castle*.dll;bin\Glass.Mapper*.dll;bin\WebActivator*.dll;bin\Microsoft.Practices.Unity*.dll;bin\System.Web.OData*.dll;bin\Microsoft.OData*.dll;bin\System.Web.Http*.dll;bin\System.Net.Http.Formatting*.dll;bin\Microsoft.Spatial*.dll;bin\Newtonsoft.Json*.dll;deployment\*.aspx;bin\Lucene.Net.dll">
<Output ItemName="MvcFiles" TaskParameter="Include" />
</CreateItem>
<Copy SourceFiles="$(IntermediateOutputPath)Web.config" DestinationFolder="$(ChoaPhysiciansPortalWebsitePath)" />
<Copy SourceFiles="@(MvcFiles)" SkipUnchangedFiles="true" DestinationFiles="@(MvcFiles->'$(ChoaPhysiciansPortalWebsitePath)\%(RelativeDir)%(Filename)%(Extension)')" />
</Target>
因此,web.config文件根据我的配置文件Web.Scott.config进行转换,最终复制到$(ChoaPhysiciansPortalWebsitePath),后者代表此项目的IIS网站目录。我可以看到这个文件在构建过程中成功复制,并应用了适当的转换,但是一旦构建过程结束,目标web.config文件就被原来的预转换web.config文件所取代,缺少我的任何文件。设置。
我查看了详细的MSBuild输出,我在构建过程中看不到任何其他内容覆盖转换后的web.config文件。我正在VS 2012 SP4中构建这个项目,并以管理员权限运行它,看看它是否有所作为(似乎没有)。
有没有其他人遇到过类似的情况?现在我不得不在每次构建之后复制转换的预览,这有点烦人。我期待听到你们所有人的任何建议,并希望其他人在一个美好的早晨:)
答案 0 :(得分:0)
噢,我解决了布鲁斯线索。我正在运行NCrunch,所以当我编写代码时,它正在后台编译项目,而不知道我的变换。