我想要自定义我的解决方案的SLN文件以管理:

  • 3个项目
  • 5种配置:DEBUG、PRODUCTION_TOTAL、PRODUCTION_PARTIAL、RELEASE和Recette

每种配置都应使用"任何CPU"平台.

我得出了这样的结论:


Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.3.32922.545
MinimumVisualStudioVersion = 10.0.40219.1
Project("{778DAE3C-4631-46EA-AA77-85C1314464D9}") = "Dumbow2", "Dumbow 2\Dumbow2.vbproj", "{101E24DB-EFB4-4375-A206-AC3FD4518FE7}"
    ProjectSection(ProjectDependencies) = postProject
        {9DD6A3BA-4177-477A-A4BF-DEC95B7984C3} = {9DD6A3BA-4177-477A-A4BF-DEC95B7984C3}
    EndProjectSection
EndProject
Project("{778DAE3C-4631-46EA-AA77-85C1314464D9}") = "Dumbow2_update_version_reference", "Dumbow2_update_version_reference\Dumbow2_update_version_reference.vbproj", "{9DD6A3BA-4177-477A-A4BF-DEC95B7984C3}"
    ProjectSection(ProjectDependencies) = postProject
        {0B3CCBC2-9BE8-4B03-9D91-86ED2474F133} = {0B3CCBC2-9BE8-4B03-9D91-86ED2474F133}
    EndProjectSection
EndProject
Project("{778DAE3C-4631-46EA-AA77-85C1314464D9}") = "Dumbow2_prebuilt", "Dumbow2_prebuilt\Dumbow2_prebuilt.vbproj", "{0B3CCBC2-9BE8-4B03-9D91-86ED2474F133}"
EndProject
Global
    GlobalSection(SolutionConfigurationPlatforms) = preSolution
        Debug|Any CPU = Debug|Any CPU       
        Production_Partial|Any CPU = Production_Partial|Any CPU
        Production_Total|Any CPU = Production_Total|Any CPU
        Release|Any CPU = Release|Any CPU       
        Recette|Any CPU = Recette|Any CPU       
    EndGlobalSection
    GlobalSection(ProjectConfigurationPlatforms) = postSolution
        {101E24DB-EFB4-4375-A206-AC3FD4518FE7}.Debug|Any CPU.ActiveCfg = Debug|x64
        {101E24DB-EFB4-4375-A206-AC3FD4518FE7}.Debug|Any CPU.Build.0 = Debug|x64
        {101E24DB-EFB4-4375-A206-AC3FD4518FE7}.Production_Total|Any CPU.ActiveCfg = Production_Total|x64
        {101E24DB-EFB4-4375-A206-AC3FD4518FE7}.Production_Total|Any CPU.Build.0 = Production_Total|x64
        {101E24DB-EFB4-4375-A206-AC3FD4518FE7}.Production_Partial|Any CPU.ActiveCfg = Production_Partial|x64
        {101E24DB-EFB4-4375-A206-AC3FD4518FE7}.Production_Partial|Any CPU.Build.0 = Production_Partial|x64
        {101E24DB-EFB4-4375-A206-AC3FD4518FE7}.Release|Any CPU.ActiveCfg = Release|x64
        {101E24DB-EFB4-4375-A206-AC3FD4518FE7}.Release|Any CPU.Build.0 = Release|x64
        {101E24DB-EFB4-4375-A206-AC3FD4518FE7}.Recette|Any CPU.ActiveCfg = Recette|x64
        {101E24DB-EFB4-4375-A206-AC3FD4518FE7}.Recette|Any CPU.Build.0 = Recette|x64
        {9DD6A3BA-4177-477A-A4BF-DEC95B7984C3}.Debug|Any CPU.ActiveCfg = Debug|x64
        {9DD6A3BA-4177-477A-A4BF-DEC95B7984C3}.Debug|Any CPU.Build.0 = Debug|x64
        {9DD6A3BA-4177-477A-A4BF-DEC95B7984C3}.Production_Total|Any CPU.ActiveCfg = Production_Total|x64
        {9DD6A3BA-4177-477A-A4BF-DEC95B7984C3}.Production_Total|Any CPU.Build.0 = Production_Total|x64
        {9DD6A3BA-4177-477A-A4BF-DEC95B7984C3}.Production_Partial|Any CPU.ActiveCfg = Production_Partial|x64
        {9DD6A3BA-4177-477A-A4BF-DEC95B7984C3}.Production_Partial|Any CPU.Build.0 = Production_Partial|x64
        {9DD6A3BA-4177-477A-A4BF-DEC95B7984C3}.Release|Any CPU.ActiveCfg = Release|x64
        {9DD6A3BA-4177-477A-A4BF-DEC95B7984C3}.Release|Any CPU.Build.0 = Release|x64
        {9DD6A3BA-4177-477A-A4BF-DEC95B7984C3}.Recette|Any CPU.ActiveCfg = Recette|x64      
        {9DD6A3BA-4177-477A-A4BF-DEC95B7984C3}.Recette|Any CPU.Build.0 = Recette|x64        
        {0B3CCBC2-9BE8-4B03-9D91-86ED2474F133}.Debug|Any CPU.ActiveCfg = Debug|x64
        {0B3CCBC2-9BE8-4B03-9D91-86ED2474F133}.Debug|Any CPU.Build.0 = Debug|x64
        {0B3CCBC2-9BE8-4B03-9D91-86ED2474F133}.Production_Total|Any CPU.ActiveCfg = Production_Total|x64
        {0B3CCBC2-9BE8-4B03-9D91-86ED2474F133}.Production_Total|Any CPU.Build.0 = Production_Total|x64
        {0B3CCBC2-9BE8-4B03-9D91-86ED2474F133}.Production_Partial|Any CPU.ActiveCfg = Production_Partial|x64
        {0B3CCBC2-9BE8-4B03-9D91-86ED2474F133}.Production_Partial|Any CPU.Build.0 = Production_Partial|x64
        {0B3CCBC2-9BE8-4B03-9D91-86ED2474F133}.Release|Any CPU.ActiveCfg = Release|x64
        {0B3CCBC2-9BE8-4B03-9D91-86ED2474F133}.Release|Any CPU.Build.0 = Release|x64
        {0B3CCBC2-9BE8-4B03-9D91-86ED2474F133}.Recette|Any CPU.ActiveCfg = Recette|x64
        {0B3CCBC2-9BE8-4B03-9D91-86ED2474F133}.Recette|Any CPU.Build.0 = Recette|x64
    EndGlobalSection
    GlobalSection(SolutionProperties) = preSolution
        HideSolutionNode = FALSE
    EndGlobalSection
    GlobalSection(ExtensibilityGlobals) = postSolution
        SolutionGuid = {D8CF22E9-68E7-417A-8707-BAF2C4AC2391}
    EndGlobalSection
EndGlobal

解决方案加载到Visual Studio中,但我得到"当前解决方案包含不正确的配置映射". 问题是来自于"定制的"SLN文件,还是来自于解决方案中每个项目的SLN文件和vbproj文件之间存在一些不匹配?

Last question: in Visual Studio UI, only two configuration display. I don't get why. enter image description here

推荐答案

我可以重现你的情况:

enter image description here

您的.sln文件有问题.

GlobalSection(ProjectConfigurationPlatforms)部分显示了到x64的配置映射,而您打算使用Any CPU.

站在我这边的是:

enter image description here

一旦我改成这样:

enter image description here

该问题将消失:

enter image description here

如果您像原始版本一样手动编写SLN(映射到x64),您应该能够再次重现该问题.

正如Jonathan所说,请不要试图手动编写SLN文件,否则可能会出现一些意外错误.

在Visual Studio UI中,仅显示两个配置.我不明白为什么.

您需要在手动更改后重新打开VS,说实话,VS不仅考虑您的书写,它还考虑其他地方的缓存,重新加载后会重新格式化.我建议你不要写了,否则,它会让人意想不到的.

但我也可以重现这种情况.

这是我的SLN文件:

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.5.33530.505
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConsoleApp7", "ConsoleApp7.csproj", "{D5EBDFAE-03A5-466C-9DE1-907AEDAE83CF}"
EndProject
Project("{778DAE3C-4631-46EA-AA77-85C1314464D9}") = "ConsoleApp8", "..\ConsoleApp8\ConsoleApp8.vbproj", "{AAC48834-364F-4CD9-81F8-34D5264A1A05}"
EndProject
Global
    GlobalSection(SolutionConfigurationPlatforms) = preSolution
        Debug|Any CPU = Debug|Any CPU       
        Production_Partial|Any CPU = Production_Partial|Any CPU
        Production_Total|Any CPU = Production_Total|Any CPU
        Release|Any CPU = Release|Any CPU       
        Recette|Any CPU = Recette|Any CPU       
    EndGlobalSection
    GlobalSection(ProjectConfigurationPlatforms) = postSolution
        {D5EBDFAE-03A5-466C-9DE1-907AEDAE83CF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {D5EBDFAE-03A5-466C-9DE1-907AEDAE83CF}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {D5EBDFAE-03A5-466C-9DE1-907AEDAE83CF}.Production_Partial|Any CPU.ActiveCfg = Release|Any CPU
        {D5EBDFAE-03A5-466C-9DE1-907AEDAE83CF}.Production_Partial|Any CPU.Build.0 = Release|Any CPU
        {D5EBDFAE-03A5-466C-9DE1-907AEDAE83CF}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {D5EBDFAE-03A5-466C-9DE1-907AEDAE83CF}.Release|Any CPU.Build.0 = Release|Any CPU
        {D5EBDFAE-03A5-466C-9DE1-907AEDAE83CF}.test|Any CPU.ActiveCfg = Release|Any CPU
        {D5EBDFAE-03A5-466C-9DE1-907AEDAE83CF}.test|Any CPU.Build.0 = Release|Any CPU
        {D5EBDFAE-03A5-466C-9DE1-907AEDAE83CF}.test4|Any CPU.ActiveCfg = Release|Any CPU
        {D5EBDFAE-03A5-466C-9DE1-907AEDAE83CF}.test4|Any CPU.Build.0 = Release|Any CPU
        {D5EBDFAE-03A5-466C-9DE1-907AEDAE83CF}.test5|Any CPU.ActiveCfg = Release|Any CPU
        {D5EBDFAE-03A5-466C-9DE1-907AEDAE83CF}.test5|Any CPU.Build.0 = Release|Any CPU
        {AAC48834-364F-4CD9-81F8-34D5264A1A05}.Debug|Any CPU.ActiveCfg = test2|Any CPU
        {AAC48834-364F-4CD9-81F8-34D5264A1A05}.Debug|Any CPU.Build.0 = test2|Any CPU
        {AAC48834-364F-4CD9-81F8-34D5264A1A05}.Production_Partial|Any CPU.ActiveCfg = Production_Partial|Any CPU
        {AAC48834-364F-4CD9-81F8-34D5264A1A05}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {AAC48834-364F-4CD9-81F8-34D5264A1A05}.Release|Any CPU.Build.0 = Release|Any CPU
        {AAC48834-364F-4CD9-81F8-34D5264A1A05}.test|Any CPU.ActiveCfg = test|Any CPU
        {AAC48834-364F-4CD9-81F8-34D5264A1A05}.test|Any CPU.Build.0 = test|Any CPU
    EndGlobalSection
    GlobalSection(SolutionProperties) = preSolution
        HideSolutionNode = FALSE
    EndGlobalSection
    GlobalSection(ExtensibilityGlobals) = postSolution
        SolutionGuid = {4A4DFA2A-F099-4DDC-86E1-343A4B11F86A}
    EndGlobalSection
EndGlobal

并且未加载活动配置:

enter image description here

如果你真的想写并使其工作,请不要复制粘贴(它可能包含意外的字节),逐一手动编写,它在我这边有效:

例如,我把‘Recette’一节写成这样:

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.5.33530.505
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConsoleApp7", "ConsoleApp7.csproj", "{D5EBDFAE-03A5-466C-9DE1-907AEDAE83CF}"
EndProject
Project("{778DAE3C-4631-46EA-AA77-85C1314464D9}") = "ConsoleApp8", "..\ConsoleApp8\ConsoleApp8.vbproj", "{AAC48834-364F-4CD9-81F8-34D5264A1A05}"
EndProject
Global
    GlobalSection(SolutionConfigurationPlatforms) = preSolution
        Debug|Any CPU = Debug|Any CPU
        Production_Partial|Any CPU = Production_Partial|Any CPU
        Release|Any CPU = Release|Any CPU
        test|Any CPU = test|Any CPU
        Recette|Any CPU = Recette|Any CPU
    EndGlobalSection
    GlobalSection(ProjectConfigurationPlatforms) = postSolution
        {D5EBDFAE-03A5-466C-9DE1-907AEDAE83CF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {D5EBDFAE-03A5-466C-9DE1-907AEDAE83CF}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {D5EBDFAE-03A5-466C-9DE1-907AEDAE83CF}.Production_Partial|Any CPU.ActiveCfg = Release|Any CPU
        {D5EBDFAE-03A5-466C-9DE1-907AEDAE83CF}.Production_Partial|Any CPU.Build.0 = Release|Any CPU
        {D5EBDFAE-03A5-466C-9DE1-907AEDAE83CF}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {D5EBDFAE-03A5-466C-9DE1-907AEDAE83CF}.Release|Any CPU.Build.0 = Release|Any CPU
        {D5EBDFAE-03A5-466C-9DE1-907AEDAE83CF}.test|Any CPU.ActiveCfg = Release|Any CPU
        {D5EBDFAE-03A5-466C-9DE1-907AEDAE83CF}.test|Any CPU.Build.0 = Release|Any CPU
        {D5EBDFAE-03A5-466C-9DE1-907AEDAE83CF}.test4|Any CPU.ActiveCfg = Release|Any CPU
        {D5EBDFAE-03A5-466C-9DE1-907AEDAE83CF}.test4|Any CPU.Build.0 = Release|Any CPU
        {D5EBDFAE-03A5-466C-9DE1-907AEDAE83CF}.test5|Any CPU.ActiveCfg = Release|Any CPU
        {D5EBDFAE-03A5-466C-9DE1-907AEDAE83CF}.test5|Any CPU.Build.0 = Release|Any CPU
        {AAC48834-364F-4CD9-81F8-34D5264A1A05}.Debug|Any CPU.ActiveCfg = test2|Any CPU
        {AAC48834-364F-4CD9-81F8-34D5264A1A05}.Debug|Any CPU.Build.0 = test2|Any CPU
        {AAC48834-364F-4CD9-81F8-34D5264A1A05}.Production_Partial|Any CPU.ActiveCfg = Production_Partial|Any CPU
        {AAC48834-364F-4CD9-81F8-34D5264A1A05}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {AAC48834-364F-4CD9-81F8-34D5264A1A05}.Release|Any CPU.Build.0 = Release|Any CPU
        {AAC48834-364F-4CD9-81F8-34D5264A1A05}.test|Any CPU.ActiveCfg = test|Any CPU
        {AAC48834-364F-4CD9-81F8-34D5264A1A05}.test|Any CPU.Build.0 = test|Any CPU
    EndGlobalSection
    GlobalSection(SolutionProperties) = preSolution
        HideSolutionNode = FALSE
    EndGlobalSection
    GlobalSection(ExtensibilityGlobals) = postSolution
        SolutionGuid = {4A4DFA2A-F099-4DDC-86E1-343A4B11F86A}
    EndGlobalSection
EndGlobal

它的工作原理是:

enter image description here

记住要一个接一个地写,否则更改将被VS立即删除(我怀疑您一次添加了它们).

这可能会造成很多问题.虽然你可以手写一些你现在遇到的东西,但请只把它作为一种try (为了更好地理解它).请记住,VS不仅指的是您手动编写的SLN文件,还指许多其他二进制文件、缓存和类似的东西.

.net相关问答推荐

";Make Async ValueTask/ValueTask方法分期分配发生了什么?

通过交互服务器渲染模式和流渲染的组合防止双重渲染

竖线在 PropertyGroup .csproj 文件中的含义

在 C# 中,如何使用泛型的基类将泛型接口的所有实例注入到单个构造函数中?

如何正确使用await using语法?

如何为多种文件类型设置 FileSystemWatcher 过滤器?

为什么具有可为空值的 struct 的 HashSet 非常慢?

value 的默认参数必须是编译时间常数?

.Include() 与 .Load() 在 EntityFramework 中的性能

将客户端证书添加到 .NET Core HttpClient

如何在 C# 中打开 Excel 文件?

多个等待与 Task.WaitAll - 等效?

运算符重载 ==, !=, Equals

DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss") 返回上午时间而不是下午时间?

是否有可用的 WPF 备忘单?

如何允许程序集(单元测试)访问另一个程序集的内部属性?

如何使用 c# 仅获取目录中的文件名?

如何使用 EPPlus 设置 XLSX 单元格宽度?

在 Windows 窗体 C# 应用程序中拥有配置文件的最简单方法

如何在 C# 中使用迭代器反向读取文本文件