我有以下用于构建 winexe 的 NANT CSC 目标:
<csc target="winexe" output="${Deploy.dir}\VMIS.exe" debug="${debug}">
<sources>
<include name="${App.dir}\**\*.cs" />
<include name="${Build.dir}\AssemblyInfo.cs" />
<exclude name="${App.dir}\**\AssemblyInfo.cs" />
</sources>
<references refid="Lib.fileset">
</references>
...
</csc>
以下是失败信息:
D:\..\myClass.cs(9,17): error CS0234: The type or namespace name 'Reporting'
does not exist in the namespace 'Microsoft' (are you missing an assembly
reference?)
在 myClass.cs 中,我有这个使用参考:
using Microsoft.ReportViewer.WinForms;
在 VS 中构建我的应用程序没有问题,但我无法从 NANT 构建。我认为我可能会错过 NANT 构建中对 Microsoft.ReportViewer.WinForms.dll 的引用。不确定如何将这个 dll 包含在 NANT 的 bin 中?
我试图修改 csc 目标的引用:
<csc ...>
...
<references refid="Lib.fileset">
<include name="Microsoft.ReportViewer.Common.dll" />
<include name="Microsoft.ReportViewer.WinForms.dll" />
</references>
...
</csc>
还是行不通。我应该使用 COPY 目标将所有 dll 文件从 bin 复制到 $(build.dir) 吗?
更新:我发现项目引用中的那些 Microsoft.ReportViewer.xx.dll 文件没有复制到本地。如何在 NANT 中为这两个 dll 文件模拟复制到本地?我想这可能会解决这个问题,因为 NANT 是控制台中的构建应用程序,并且不了解全局缓存中的引用。