У меня есть решение с проектом веб-сайта. Существуют три пользовательских конфигурации решения: Dev, Test, Prod. Тем не менее, проект веб-сайта не имеет файла .csproj, и нет способа (или я не могу его найти) использовать конфигурации для проекта веб-сайта. Я использую MSBuild для построения решения:Конфигурация решения для перезаписи Visual Studio для веб-сайта
MSBuild.exe MySolution.sln /m /p:Platform=x86;TargetFrameworkVersion=v4.6.2;OutputPath=bin;Configuration=Dev /ToolsVersion:14.0
Как .sln файл не имеет никакой информации о моей конфигурации Dev для проекта веб-сайта, есть только «разделы» Debug и Release:
Project("{E24C65DC-7377-472B-9ABA-BC803B73C61A}") = "Web", "Web\", "{1F81A0DB-6FF4-4F89-B988-6D327797C4FD}"
ProjectSection(WebsiteProperties) = preProject
TargetFrameworkMoniker = ".NETFramework,Version%3Dv4.6.2"
ProjectReferences = "{12A625AA-8B5A-4336-AA4A-3630AAB3A27D}|MyLib.dll;"
Debug.AspNetCompiler.VirtualPath = "/localhost_54141"
Debug.AspNetCompiler.PhysicalPath = "Web\"
Debug.AspNetCompiler.TargetPath = "PrecompiledWeb\localhost_54141\"
Debug.AspNetCompiler.Updateable = "true"
Debug.AspNetCompiler.ForceOverwrite = "true"
Debug.AspNetCompiler.FixedNames = "false"
Debug.AspNetCompiler.Debug = "True"
Release.AspNetCompiler.VirtualPath = "/localhost_54141"
Release.AspNetCompiler.PhysicalPath = "Web\"
Release.AspNetCompiler.TargetPath = "PrecompiledWeb\localhost_54141\"
Release.AspNetCompiler.Updateable = "true"
Release.AspNetCompiler.ForceOverwrite = "true"
Release.AspNetCompiler.FixedNames = "false"
Release.AspNetCompiler.Debug = "False"
VWDPort = "54141"
SlnRelativePath = "Web\"
StartServerOnDebug = "false"
EndProjectSection
EndProject
и веб-сайта не строится.
ОК, я могу вручную отредактировать файл решения и изменить/добавить настройки Dev.XXXX, Test.XXX и т. Д., И все работает хорошо, пока вы не откроете решение в Visual Studio и не сохраните его. Visual Studio выполняет все ваши изменения и снова сталкивается с той же проблемой.
В качестве обходного пути я могу создать копию .sln-файла и вручную синхронизировать его с исходным решением. У кого-то есть лучшая идея?