【问题标题】:Interactive window support for multiple runtimes .NET Core in vsix templatevsix 模板中对多个运行时 .NET Core 的交互式窗口支持
【发布时间】:2021-02-23 12:20:05
【问题描述】:

在为 VSIX 创建模板时,我们可以允许用户选择 .Net 框架版本 它是这样完成的:

<TargetFrameworkVersion>v$targetframeworkversion$</TargetFrameworkVersion>

现在,随着新版本 Visual Studio (16.8) 的发布,用户也可以选择 .NET Core 版本。 但此代码似乎在 .NET Core 模板项目中不起作用,并显示不同的数字,而不是 netcoreapp3.1 或 net50-windows 值。 .net 核心也使用 &lt;TargetFramework&gt; 而不是 &lt;TargetFrameworkVersion&gt; 那么正确的参数是什么? 我测试了这些:

1.result = 4.5

<TargetFrameworkVersion>$targetframeworkversion$</TargetFrameworkVersion>

2.result = $targetframework$

<TargetFramework>$targetframework$</TargetFramework>

3.result = 4.5

<TargetFramework>$targetframeworkversion$</TargetFramework>

【问题讨论】:

    标签: c# visual-studio visual-studio-extensions vsix target-framework


    【解决方案1】:

    我认为你目前无法为 Net Core 创建这样的 vsix 项目模板

    我认为您已经创建了项目模板项目来实现您的要求。

    您应该注意,这个项目模板使用旧的 sdk 样式格式,而不是新的 sdk 格式(Net Core)。还有,它传入和传出的始终是Net Framework的框架。

    所以无论你如何在这个模板的基础上改变它的proj形式,它永远都是net框架。可以看到这个界面,是我自己创建的自定义模板,我改用吧

    <Project Sdk="Microsoft.NET.Sdk">
    ....
    
    <TargetFramework>$targetframeworkversion$</TargetFramework>
    
    .....
    
    </Project>
    

    我还卸载了 Project Template 项目--> 编辑 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 Forumgithub 与微软团队联系,以发布具有新sdk 格式(Net Core 格式)的新项目模板项目。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-18
      • 1970-01-01
      • 2018-03-30
      • 1970-01-01
      • 2021-03-08
      • 2018-12-07
      相关资源
      最近更新 更多