C# 如何更改现有Visual Studio项目的编程语言-而不是转换代码

C# 如何更改现有Visual Studio项目的编程语言-而不是转换代码,c#,visual-studio,C#,Visual Studio,我刚刚重新安排了一个VisualStudio解决方案。它过去只是一个解决方案中的一个项目。我创建了两个新的空项目,并将一些代码文件移到其中,因此我现在有了一个包含三个项目的解决方案 现在我注意到我无意中为其中一个项目选择了错误的编程语言;它应该是VB,但整个解决方案是C#。这是一个Windows服务项目 我想将该项目的编程语言更改为C#,而不执行任何类型的代码转换等。代码已经用C#编写-只是Visual Studio不知道:) 我见过许多类似的问题,但它们似乎都涉及到重新分解/翻译代码-我只想更

我刚刚重新安排了一个VisualStudio解决方案。它过去只是一个解决方案中的一个项目。我创建了两个新的空项目,并将一些代码文件移到其中,因此我现在有了一个包含三个项目的解决方案

现在我注意到我无意中为其中一个项目选择了错误的编程语言;它应该是VB,但整个解决方案是C#。这是一个Windows服务项目

我想将该项目的编程语言更改为C#,而不执行任何类型的代码转换等。代码已经用C#编写-只是Visual Studio不知道:)


我见过许多类似的问题,但它们似乎都涉及到重新分解/翻译代码-我只想更改项目设置。

根据评论所说,这个问题的答案是:你没有

但让我进一步说明一下:) OP(me)正在寻找将VB Windows服务的语言更改为C#的方法。其目的是获得与从一开始创建C#项目并将代码文件移动到其中相同的设置。但我现在意识到,语言的选择不仅仅是使现有代码文件无法构建,它还会创建特定于该语言的文件和文件夹:

我应该知道,但我没有考虑过,因为我一直在VS GUI中

因此,如果您的意图与我的意图相同,那么答案是否定的,这不能通过简单地在VisualStudio中更改某些设置来实现

我为什么在乎? 在创建项目之后,我花了一些时间重新整理了一堆现有的文件和文件夹,然后才意识到我使用了错误的语言。所以我想避免重蹈覆辙。尽管如此,我认为这不值得。我从一开始就这样做了

如果你犯了我犯的错误,并且你真的想改变一个项目的语言,这可能是可行的(见上面的评论)。这可能相当复杂,需要您进入文件并删除项目模板添加的内容。具体如何做取决于项目类型和产品版本

脚注:不同类型的项目/解决方案可能表现不同-其他项目类型可能更容易更改其语言


脚注2:回答我自己感觉很尴尬,这是一种不回答。但我仍然觉得这对我这种处境的人有帮助。如果你不同意,不要炒我鱿鱼;但是一定要让我知道!:-)

根据评论的说法,这个问题的答案是:你没有

但让我进一步说明一下:) OP(me)正在寻找将VB Windows服务的语言更改为C#的方法。其目的是获得与从一开始创建C#项目并将代码文件移动到其中相同的设置。但我现在意识到,语言的选择不仅仅是使现有代码文件无法构建,它还会创建特定于该语言的文件和文件夹:

我应该知道,但我没有考虑过,因为我一直在VS GUI中

因此,如果您的意图与我的意图相同,那么答案是否定的,这不能通过简单地在VisualStudio中更改某些设置来实现

我为什么在乎? 在创建项目之后,我花了一些时间重新整理了一堆现有的文件和文件夹,然后才意识到我使用了错误的语言。所以我想避免重蹈覆辙。尽管如此,我认为这不值得。我从一开始就这样做了

如果你犯了我犯的错误,并且你真的想改变一个项目的语言,这可能是可行的(见上面的评论)。这可能相当复杂,需要您进入文件并删除项目模板添加的内容。具体如何做取决于项目类型和产品版本

脚注:不同类型的项目/解决方案可能表现不同-其他项目类型可能更容易更改其语言


脚注2:回答我自己感觉很尴尬,这是一种不回答。但我仍然觉得这对我这种处境的人有帮助。如果你不同意,不要炒我鱿鱼;但是一定要让我知道!:-)

只需重新创建项目并以新的项目格式重新添加文件(
Microsoft.NET.Sdk
,用于.NET Core,但如果手动编辑,也可用于Framework)这很简单:语言由扩展名隐式确定,因此您只需将
.vbproj
重命名为
.csproj
。在旧格式中,这涉及到编辑和重新排列guid,不值得这么做。@AFriend是的,这当然是可能的,但假设重新排列所有文件和文件夹是非常复杂和耗时的。是的,这是因为它将使用旧格式(使用大量的半可读XML,而不是新格式,新格式只有少量可读性更强的XML)。旧格式对项目类型GUID中的项目类型进行编码。在VS中创建两个新的空项目,一个是VB,一个是CS,然后做一个diff,看看我的意思。将GUID从VB修补到CS可能足以修复它,也可能无法修复。新样式的最小项目文件示例:
Exenet45
。其他所有内容都是推断和隐式的(同一目录和子目录中的所有文件都将成为项目的一部分)。旧样式更加冗长,不适合注释。只需重新创建项目并以新的项目格式重新添加文件(
Microsoft.NET.Sdk
,用于.NET Core,但如果手动编辑,也可用于Framework)这很简单:语言由扩展隐式确定,因此,您可以将
.vbproj
重命名为
.csproj
。在旧格式中,此发票