vscode 有 csproj 生成器吗?

问题描述 投票:0回答:2

我使用 Visual Studio Code,因为它比 Visual Studio 更轻量级,但仍然为我提供智能感知。但是我找不到代码自动构建 .csproj 或 .sln 的方法,所以我一直从头开始制作文件。关于它的文档很少,所以我不得不放弃其他文件中的示例。一切都很好,但最近我遇到了一个障碍,用 msbuild 编译它并不能得到与 csc.exe 编译相同的结果。每当我加载 dll 并尝试使用它的类之一时,我都会收到 BadImageFormatException。我的问题是,有没有办法让 vscode 在我创建新项目时生成 csproj 或 sln 文件?如果没有,有没有办法让我以与批处理文件相同的方式编译 csproj 文件?

csproj 文件:

<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
    <Reference Include="System" />
    <Reference Include="System.Drawing" />
    <Reference Include="Splicer.dll">
        <HintPath>Splicer.dll</HintPath>
    </Reference>
    <Reference Include="DirectShowLib-2005.dll">
        <HintPath>DirectShowLib-2005.dll</HintPath>
    </Reference>
    <Compile Include="src\*.cs" />
</ItemGroup>
<Target Name="Build">
    <MakeDir Directories="$(OutputPath)"
        Condition="!Exists('$(OutputPath)')"
    />
    <Csc
        Platform="x86"
        NoWarn=""
        Sources="@(Compile)"
        OutputAssembly="$(OutputPath)$(AssemblyName).exe"
    />
</Target>
<PropertyGroup>
    <AssemblyName>SplicerDemo</AssemblyName>
    <OutputPath>bin\</OutputPath>
</PropertyGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />

批量编译器:

@echo off
set "CSC=C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe"
set "Refs=Splicer.dll,DirectShowLib-2005.dll"
set "Files=src\SplicerDemo\*.cs"
set "Compile=%csc% /platform:x86 /r:%Refs% /out:SplicerDemo.exe /t:exe %Files$"
cmd

要编译的文件:

using Splicer.Renderer;
using Splicer.Timeline;

using System.Drawing;

namespace SplicerDemo   {
    public class Start  {
        // Variables
        public string   outputFile;

        public Start()  {
            outputFile= "Foo.avi";
        }

        public static void Main()   {
            Start   s=  new Start();

            System.Console.WriteLine("Starting Build...");
            s.save();
            System.Console.WriteLine("Build Finished!");
        }

        // --- Methods ---

        public void save()  {
            // Variables
            DefaultTimeline timeline=   new DefaultTimeline(24);
            IGroup  _group= timeline.AddVideoGroup(32, 1024, 786);
            ITrack  vtrack= _group.AddTrack();
            ITrack  atrack= timeline.AddAudioGroup().AddTrack();
            Bitmap  img=    new Bitmap("image3.jpg");

            vtrack.AddImage("image1.jpg", 0, 24);
            vtrack.AddImage("image2.jpg", 0, 24);
            vtrack.AddImage(img, 0, 100);
            vtrack.AddImage("image1.jpg", 0, 128);

            atrack.AddAudio("audio1.mp3", 0, vtrack.Duration);

            using(AviFileRenderer renderer= new AviFileRenderer(timeline, outputFile))  {
                renderer.Render();
            }
        }
    }
}
c# batch-file msbuild visual-studio-code csc
2个回答
2
投票

不幸的是,VSCode 无法创建/构建针对完整 .Net Framework 的解决方案/项目,但它确实支持针对 .Net Core 的项目。您可以使用 Yeoman 项目脚手架系统来创建和构建针对 .Net Core 的项目。


0
投票

Microsoft 的新 C# Dev Kit 扩展将为您创建 .sln 和 .csproj 文件。

详细说明目前在这里,但这是快速版本:

安装 C# Dev Kit 扩展,然后按照上面文档中的说明进行操作:

  1. 使用 ⇧⌘P 打开命令面板,然后输入“.NET”。
  2. 查找并选择 .NET:新建项目命令。
  3. 选择命令后,您需要选择项目模板。选择控制台应用程序。
  4. 要运行您的应用程序,请在上方菜单中选择“运行”>“开始调试”,或使用 F5 键盘快捷键。

界面现在有点mvp,但它可以工作。

© www.soinside.com 2019 - 2024. All rights reserved.