2017-03-22 2 views
3

Visual Studioよりも軽量ですが、まだ私にインテリセンスがあるので、Visual Studio Codeを使用しています。しかし、私はコードが.csprojまたは.slnを自動的に構築する方法を見つけることができませんでした。そのため、ファイルをゼロから作成しています。そこにはほとんどドキュメントがありませんので、私は他のファイルからの例を外さなければなりませんでした。大丈夫ですが、最近はmsbuildを使ってコンパイルしてもcsc.exeでコンパイルしたのと同じ結果にはなりません。私はBadImageFormatExceptionを得るでしょう、私はDLLにロードし、そのクラスの1つを試してみてください。私の質問は、新しいプロジェクトを作成するときに、vscodeにcsprojまたはslnファイルを生成させる方法があるかどうかです。もしそうでなければ、バッチファイルと同じようにコンパイルしたcsprojファイルを作る必要がありますか?vscodeには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(); 
      } 
     } 
    } 
} 

答えて

2

残念ながらVSCodeは/ビルドを作成する方法がありません。ソリューション/プロジェクト完全な.Net Frameworkをターゲットにしていますが、.Net Coreをターゲットとしたプロジェクトをサポートしています。 Yeomanプロジェクトの足場システムを使用して、.Netコアをターゲットにしたプロジェクトを作成してビルドすることができます。

関連する問題