首先应该注意的是,我正在努力避免重写所有脚本以使用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’。
发布于 2009-01-06 17:19:32
问题似乎来自的主和根命名空间属性。当您将它们切换为类似于以下内容时会发生什么:
<vbc target="winexe" output="C:\Test.exe" main="MyApplication" verbose="true" rootnamespace="WindowAppNantTest.My">
<imports>
<import namespace="Microsoft.VisualBasic"/>
<import namespace="System.Windows.Forms"/>
</imports>
<sources>
<include name="**/**/*.vb"/>
</sources>
</vbc>或者类似于以下内容:
<vbc target="winexe" output="C:\Test.exe" main="My.MyApplication" verbose="true" rootnamespace="WindowAppNantTest">
<imports>
<import namespace="Microsoft.VisualBasic"/>
<import namespace="System.Windows.Forms"/>
</imports>
<sources>
<include name="**/**/*.vb"/>
</sources>
</vbc>发布于 2011-01-28 07:13:39
我不确定您的意思是不想在NAnt中使用msbuild,还是不想批量切换到msbuild脚本。
如果是后者,那么我在你关于同一主题的其他帖子上的回复在这里也是有效的。
您可以在NAnt脚本中使用msbuild contrib (http://nantcontrib.sourceforge.net/)和NAnt。
msbuild任务的引用是:
http://nantcontrib.sourceforge.net/release/latest/help/tasks/msbuild.html
和相关的代码片段:
<target name="build" depends="clean">
<msbuild project="ProjectName.vbproj" />
</target>发布于 2009-02-12 22:15:23
您需要做的是在VBC命令中设置以下内容:
<references>
<include name="System.Windows.Forms.dll"/>
<indlude name="Microsoft.VisualBasic.dll"/>
</references>这应该可以解决您的问题。(我猜是第二个dll,因为我是CS专家)然而,编译的语法几乎是相同的。
在我工作过的所有项目中,你总是需要设置引用来包含任何动态链接库,无论它们是来自.Net,第三方还是你自己的(即项目引用),否则它们不会正确链接。
试一试,看看会发生什么。
https://stackoverflow.com/questions/417261
复制相似问题