私はこのNAntのことにほとんど亀裂を生じました。私が言うことができるのは、コンパイルに関しては、Visual Studioがカバーの背後に隠されていることです。私はVB.NETアプリはNAntのを経由して、今、正常にコンパイルしていNAntリソースのリンク/構築
は、しかし、それはエラーを思い付く、実行されません:私はコンパイルおよびVisual Studioで実行すると
Could not find any resources appropriate for the specified culture or the neutral culture.
Make sure "APP3.Resource.resources" was correctly embedded or linked into assembly "APP3" at compile time, or that all the satellite assemblies required are loadable and fully signed.
それはすべて正常に動作します。
ビルドファイルには、コンパイルされているすべてのプロジェクトのすべての.resxファイルが含まれており、NAntビルドプロセス中にエラーは発生しません。
任意のアイデアは
ああ:-)いただければ幸いです、と私は私のEXEが6キロバイト小さいので、何かが明らかに不足している、とNAntのプロセスはいずれかのマニフェストファイルを作成していないようだ、またはすべてのことに気づきますXMLファイルは、私はそれが正常だと仮定しますか?
<?xml version="1.0"?>
<project name="APP3" default="build" basedir="..\">
<description>APP3 build</description>
<property name="nant.settings.currentframework" value="net-3.5" />
<property name="projectversion" value="3.8.0" />
<property name="project.config" value="debug" />
<target name="init">
<call target="${project.config}" />
</target>
<target name="debug">
<property name="project.config" value="debug" />
<property name="build.debug" value="true" />
<property name="basedir.suffix" value="-debug" />
</target>
<target name="release">
<property name="project.config" value="release" />
<property name="build.debug" value="false" />
<property name="basedir.suffix" value="-release" />
</target>
<target name="clean">
<delete file="${project::get-base-directory()}${project::get-name()}_${projectversion}${basedir.suffix}\APP3_DataClasses.dll" failonerror="false" />
<delete file="${project::get-base-directory()}${project::get-name()}_${projectversion}${basedir.suffix}\classUtilities.dll" failonerror="false" />
<delete file="${project::get-base-directory()}${project::get-name()}_${projectversion}${basedir.suffix}\APP3.exe" failonerror="false" />
</target>
<target name="build-classutilities" depends="init, clean" description="compiles the APP3 utilities class">
<property name="build.dir" value="${project::get-base-directory()}/${project::get-name()}_${projectversion}${basedir.suffix}"/>
<mkdir dir="${build.dir}" />
<vbc target="library" output="${build.dir}/classUtilities.dll" debug="${build.debug}" rootnamespace="classUtilities">
<imports>
<import namespace="Microsoft.VisualBasic" />
<import namespace="System" />
<import namespace="System.Collections" />
<import namespace="System.Collections.Generic" />
<import namespace="System.Data" />
<import namespace="System.Diagnostics" />
<import namespace="System.Linq" />
<import namespace="System.Xml.Linq" />
</imports>
<sources>
<include name="${project::get-base-directory()}/classUtilities/Utilities.vb" />
</sources>
<resources>
<include name="${project::get-base-directory()}/classUtilities/*.resx" />
<include name="${project::get-base-directory()}/classUtilities/My Project/*.resx" />
</resources>
<references>
<include name="System.dll" />
<include name="System.Data.dll" />
<include name="System.Core.dll" />
<include name="System.Xml.dll" />
<include name="System.Xml.Linq.dll" />
</references>
</vbc>
</target>
<target name="build-dataclasses" depends="build-classutilities" description="compiles the APP3 data classes">
<property name="build.dir" value="${project::get-base-directory()}/${project::get-name()}_${projectversion}${basedir.suffix}"/>
<mkdir dir="${build.dir}" />
<vbc target="library" output="${build.dir}/APP3_DataClasses.dll" debug="${build.debug}" rootnamespace="APP3_DataClasses">
<imports>
<import namespace="Microsoft.VisualBasic" />
<import namespace="System" />
<import namespace="System.Collections" />
<import namespace="System.Collections.Generic" />
<import namespace="System.Configuration" />
<import namespace="System.Data" />
<import namespace="System.Diagnostics" />
<import namespace="System.Xml" />
<import namespace="System.Xml.Linq" />
<import namespace="Iesi.Collections" />
</imports>
<sources>
<include name="${project::get-base-directory()}/APP3_DataClasses/**/*.vb" />
</sources>
<resources prefix="APP3_DataClasses">
<include name="${project::get-base-directory()}/APP3_DataClasses/*.resx" />
<include name="${project::get-base-directory()}/APP3_DataClasses/My Project/*.resx" />
<include name="${project::get-base-directory()}/APP3_DataClasses/*.hbm.xml" />
</resources>
<references>
<include name="System.dll" />
<include name="System.Core.dll" />
<include name="System.Xml.dll" />
<include name="System.Xml.Linq.dll" />
<include name="C:\Dev\NHibernate-2.1.2\Required_Bins\Iesi.Collections.dll" />
</references>
</vbc>
</target>
<target name="build" description="compiles the source code" depends="build-dataclasses">
<property name="build.dir" value="${project::get-base-directory()}/${project::get-name()}_${projectversion}${basedir.suffix}"/>
<mkdir dir="${build.dir}" />
<copy file="C:\Dev\NHibernate-2.1.2\Required_Bins\NHibernate.dll" tofile="${build.dir}/NHibernate.dll" />
<copy file="C:\Dev\NHibernate-2.1.2\Required_Bins\Iesi.Collections.dll" tofile="${build.dir}/Iesi.Collections.dll" />
<copy file="C:\Dev\NHibernate-2.1.2\Required_Bins\log4net.dll" tofile="${build.dir}/log4net.dll" />
<copy file="${project::get-base-directory()}/APP3/hibernate.cfg.xml" tofile="${build.dir}/hibernate.cfg.xml" />
<copy file="C:\Dev\LumenWorks.Framework\LumenWorks.Framework.3.8.0\LumenWorks.Framework.IO.dll" tofile="${build.dir}/LumenWorks.Framework.IO.dll" />
<copy file="C:\Program Files (x86)\Microsoft Visual Studio 9.0\Visual Studio Tools for Office\PIA\Office11\Microsoft.Office.Interop.Word.dll" tofile="${build.dir}/Microsoft.Office.Interop.Word.dll" />
<copy file="C:\Program Files (x86)\Microsoft Visual Studio 9.0\Visual Studio Tools for Office\PIA\Office11\office.dll" tofile="${build.dir}/office.dll" />
<copy file="C:\Program Files (x86)\Microsoft Visual Studio 9.0\Visual Studio Tools for Office\PIA\Office11\Microsoft.Vbe.Interop.dll" tofile="${build.dir}/Microsoft.Vbe.Interop.dll" />
<copy file="${project::get-base-directory()}/APP3/app.config" tofile="${build.dir}/APP3.exe.config" />
<copy todir="${build.dir}">
<fileset basedir="C:\Dev\NHibernate-2.1.2\Required_For_LazyLoading\Castle\">
<include name="*.dll" />
</fileset>
</copy>
<vbc target="winexe" output="${build.dir}/APP3.exe" debug="${build.debug}" rootnamespace="APP3">
<imports>
<import namespace="Microsoft.VisualBasic" />
<import namespace="System" />
<import namespace="System.Collections" />
<import namespace="System.Collections.Generic" />
<import namespace="System.Configuration" />
<import namespace="System.Data" />
<import namespace="System.Data.SqlClient" />
<import namespace="System.Diagnostics" />
<import namespace="System.Drawing" />
<import namespace="System.Windows.Forms" />
<import namespace="System.IO" />
<import namespace="System.Xml" />
</imports>
<sources>
<include name="${project::get-base-directory()}/${project::get-name()}/*.vb" />
<include name="${project::get-base-directory()}/${project::get-name()}/classes/*.vb" />
<include name="${project::get-base-directory()}/${project::get-name()}/historical/*.vb" />
<include name="${project::get-base-directory()}/${project::get-name()}/Modules/*.vb" />
<include name="${project::get-base-directory()}/${project::get-name()}/My Project/*.vb" />
</sources>
<resources prefix="APP3" dynamicprefix="true">
<include name="${project::get-base-directory()}/${project::get-name()}/*.resx" />
<include name="${project::get-base-directory()}/${project::get-name()}/My Project/*.resx" />
</resources>
<references>
<include name="Microsoft.VisualBasic.dll" />
<include name="System.dll" />
<include name="System.Data.dll" />
<include name="System.Windows.Forms.dll" />
<include name="System.configuration.dll" />
<include name="System.Drawing.dll" />
<include name="${build.dir}/APP3_DataClasses.dll" />
<include name="${build.dir}/classUtilities.dll" />
<include name="System.Xml.dll" />
<include name="C:\Dev\NHibernate-2.1.2\Required_Bins\Iesi.Collections.dll" />
<include name="C:\Dev\NHibernate-2.1.2\Required_Bins\NHibernate.dll" />
<include name="C:\Dev\NHibernate-2.1.2\Required_Bins\log4net.dll" />
<include name="C:\Dev\LumenWorks.Framework\LumenWorks.Framework.3.8.0\LumenWorks.Framework.IO.dll" />
<include name="C:\Program Files (x86)\Microsoft Visual Studio 9.0\Visual Studio Tools for Office\PIA\Office11\Microsoft.Office.Interop.Word.dll" />
</references>
</vbc>
</target>
好奇心ではなく、より良いコンテキストのために:なぜNAntでビルドする必要がありますか?現在NAntでカスタマイズしたいものは、MSbuildでも実行できます。これは、コマンドラインツールに加えてVSから直接実行できるビルドを取得します。 – skolima
良い質問です。正直言って、新しいCIサーバー(Atlassian Bamboo)でコンパイルするものが必要です。これは、NAntとMSBuildの両方を参照してください。 MSBuildがそのシナリオで働く方が簡単な場合、CIサーバーにはどのタイプのVSもインストールされていないので、.NETフレームワークだけです。 DLLへの参照パスを取得しないという点で、.NET 2.0のmsbuildではこれまで問題が発生していましたが、これは克服できる場合は問題ありません。 – Dominik
MSBuildは3.5および4.0リリースで大幅に改善されました。4.0は最終的にNAntで機能パリティを取得しました。また、通常の.Net Frameworkインストールと一緒にインストールされます。 – skolima