0

最初に、msbuild を使用するようにすべてのスクリプトを書き直さないようにしていることに注意してください。

VBC タスクで NAnt を使用し、WinForms アプリケーションをコンパイルすると、いくつかの問題があることに気付きました。主な問題は、VBC が Sub Main を見つけられないことです。これは奇妙です。なぜなら、VS 内からは、私の vbc への呼び出しと msbuild の vbc への呼び出しの間に何らかの違いがあるという兆候がないからです。

この問題の解決策や、MSBuild/VS によって生成されている/生成されていない可能性のある残りの部分クラスを強制的に作成する方法についての洞察を持っている人はいますか?

サンプル ビルド スクリプト:

<?xml version="1.0" encoding="utf-8" ?>
<project xmlns="http://nant.sf.net/release/0.85/nant.xsd" name="Test" default="build">
    <target name="build">
        <vbc target="winexe" output="C:\Test.exe" main="WindowAppNantTest.My.MyApplication" verbose="true" rootnamespace="WindowAppNantTest">
            <imports>
                <import namespace="Microsoft.VisualBasic"/>
                <import namespace="System.Windows.Forms"/>
            </imports>
            <sources>
                <include name="**/**/*.vb"/>
            </sources>
        </vbc>
    </target>
</project>

エラー: [vbc] vbc: エラー BC30420: 'WindowAppNantTest.My.MyApplication' に 'Sub Main' が見つかりませんでした。

4

3 に答える 3

1

NAnt 内で msbuild を使用したくないということなのか、それとも msbuild スクリプトの卸売りに切り替えたくないのか、私にはわかりません。

後者の場合、同じトピックに関する他の投稿に対する私の返信はここでも有効です。

NAnt contrib (http://nantcontrib.sourceforge.net/) を使用し、NAnt スクリプト内で msbuild を使用できます。

msbuild タスクのリファレンスは次のとおりです。

http://nantcontrib.sourceforge.net/release/latest/help/tasks/msbuild.html

そして、関連するスニペット:

<target name="build" depends="clean">
     <msbuild project="ProjectName.vbproj" />
</target>
于 2011-01-27T23:13:38.907 に答える
0

あなたがする必要があることはあなたのVBCコマンドに以下を設定することです:

<references>
  <include name="System.Windows.Forms.dll"/>
  <indlude name="Microsoft.VisualBasic.dll"/>
</references>

これで問題が解決するはずです。(私はCSの人なので、2番目のdllを推測しました)ただし、コンパイルの構文はほとんど同じです。

私が取り組んだすべてのプロジェクトでは、.Net、サードパーティ、または独自のDLL(つまり、プロジェクト参照)からのDLLを含むように、常に参照を設定する必要があります。そうしないと、正しくリンクされません。

それを試してみて、何が起こるか見てみましょう。

于 2009-02-12T22:15:22.857 に答える