交互式 window 支持 vsix 模板中的多个运行时 .NET Core
Interactive window support for multiple runtimes .NET Core in vsix template
在为 VSIX 创建模板时,我们可以允许用户选择 .Net 框架版本
这是如何完成的:
<TargetFrameworkVersion>v$targetframeworkversion$</TargetFrameworkVersion>
现在,随着新版本 Visual Studio (16.8) 的发布,这也允许用户 select .NET Core 版本。
但是这段代码似乎在 .NET Core 模板项目中不起作用,并且显示不同的数字而不是 netcoreapp3.1 或 net50-windows 值。
.net 核心也使用 <TargetFramework>
而不是 <TargetFrameworkVersion>
那么正确的参数是什么?
我测试了这些:
1.result = 4.5
<TargetFrameworkVersion>$targetframeworkversion$</TargetFrameworkVersion>
2.result = $targetframework$
<TargetFramework>$targetframework$</TargetFramework>
3.result = 4.5
<TargetFramework>$targetframeworkversion$</TargetFramework>
我认为您目前无法为 Net Core 创建这样的 vsix 项目模板。
我认为您已经创建了项目模板项目来实现您的要求。
你应该注意到这个项目模板使用旧的 sdk 样式格式而不是新的 sdk 格式(Net Core)。还有,它传入和传出的总是Net Framework
.
的框架
所以无论你如何在这个模板的基础上改变它的proj
形式,它永远是net framework。可以看到这个界面,是我自己创建的自定义模板,我改成使用
<Project Sdk="Microsoft.NET.Sdk">
....
<TargetFramework>$targetframeworkversion$</TargetFramework>
.....
</Project>
而且我还卸载了 项目模板 项目--> 编辑 xxx.csproj
文件,更改为使用这些:
<Project Sdk="Microsoft.NET.Sdk">
....
<TargetFramework>netcoreapp3.1</TargetFramework>
.....
</Project>
构建项目模板并将其放入C:\Users\xxx\Documents\Visual Studio 2019\Templates\ProjectTemplates
。
重启VS,然后使用那个模板,你可以看到这个:
它 始终以 net frameowrk
为目标。并且证明修改后的框架是由项目模板项目本身的内部参数控制的,我们不能改变这个内部参数。
详细,$targetframeworkversion$
是项目模板本身的参数,由于项目模板是微软发布的net framework
,所以参数总是 net framework
和其他不可控制的行为也会导致模板项目的损坏。所以我们不能用那个得到Net Core
。
建议
作为建议,你应该在DC Forum or github上与微软的团队联系,发布一个新的项目模板项目,使用新的sdk格式(Net Core格式)。
在为 VSIX 创建模板时,我们可以允许用户选择 .Net 框架版本 这是如何完成的:
<TargetFrameworkVersion>v$targetframeworkversion$</TargetFrameworkVersion>
现在,随着新版本 Visual Studio (16.8) 的发布,这也允许用户 select .NET Core 版本。
但是这段代码似乎在 .NET Core 模板项目中不起作用,并且显示不同的数字而不是 netcoreapp3.1 或 net50-windows 值。
.net 核心也使用 <TargetFramework>
而不是 <TargetFrameworkVersion>
那么正确的参数是什么?
我测试了这些:
1.result = 4.5
<TargetFrameworkVersion>$targetframeworkversion$</TargetFrameworkVersion>
2.result = $targetframework$
<TargetFramework>$targetframework$</TargetFramework>
3.result = 4.5
<TargetFramework>$targetframeworkversion$</TargetFramework>
我认为您目前无法为 Net Core 创建这样的 vsix 项目模板。
我认为您已经创建了项目模板项目来实现您的要求。
你应该注意到这个项目模板使用旧的 sdk 样式格式而不是新的 sdk 格式(Net Core)。还有,它传入和传出的总是Net Framework
.
所以无论你如何在这个模板的基础上改变它的proj
形式,它永远是net framework。可以看到这个界面,是我自己创建的自定义模板,我改成使用
<Project Sdk="Microsoft.NET.Sdk">
....
<TargetFramework>$targetframeworkversion$</TargetFramework>
.....
</Project>
而且我还卸载了 项目模板 项目--> 编辑 xxx.csproj
文件,更改为使用这些:
<Project Sdk="Microsoft.NET.Sdk">
....
<TargetFramework>netcoreapp3.1</TargetFramework>
.....
</Project>
构建项目模板并将其放入C:\Users\xxx\Documents\Visual Studio 2019\Templates\ProjectTemplates
。
重启VS,然后使用那个模板,你可以看到这个:
它 始终以 net frameowrk
为目标。并且证明修改后的框架是由项目模板项目本身的内部参数控制的,我们不能改变这个内部参数。
详细,$targetframeworkversion$
是项目模板本身的参数,由于项目模板是微软发布的net framework
,所以参数总是 net framework
和其他不可控制的行为也会导致模板项目的损坏。所以我们不能用那个得到Net Core
。
建议
作为建议,你应该在DC Forum or github上与微软的团队联系,发布一个新的项目模板项目,使用新的sdk格式(Net Core格式)。