0

我有一个 VB 类,当我运行时:

msbuild /t:Compile

它还为包含该类的已编译代码的应用程序生成 Exe。

我想在 myfolder 文件夹中为我的 VB 类创建一个单独的 dll。

What extra arguments do I have to pass, in order to get my dll in myfolder ?

任何帮助表示赞赏!

4

3 回答 3

3

如果您遵循 MSBuild 脚本的标准 Visual Studio 约定(并且您可能是),则单个.vbproj映射到单个输出程序集(或.exe.dll)。输出格式由OutputType属性设置。要生成两个输出程序集,您需要创建两个项目文件,并使用解决方案文件(您可以使用 Visual Studio 生成它,然后使用 MSBuild 从命令行编译)将它们绑定在一起,或者您可以创建一个.proj文件捆绑它们。这样的捆绑项目如下所示:

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <ItemGroup>
    <ProjectsToBuild Include="**\*proj" Exclude="$(MSBuildProjectFile)"/>
  </ItemGroup>
  <PropertyGroup>
    <Configuration>Release</Configuration>
  </PropertyGroup>
  <Target Name="Build">
    <MSBuild Projects ="@(ProjectsToBuild)"
             ContinueOnError ="false"
             Properties="Configuration=$(Configuration)">
        <Output ItemName="OutputFiles" TaskParameter="TargetOutputs"/>
    </MSBuild>
  </Target>
</Project>
于 2011-07-20T08:54:47.507 回答
1

这可以通过调用 MSbuild 的编译任务来完成。

因此,编写一个任务来使用 VBC 编译器任务将类编译为 dll 就可以了。

休息,默认编译任务会生成主模块的exe。

就是那样 !

于 2011-07-26T15:48:30.167 回答
0

您应该将您的项目分成 2 个项目。1) .EXE 包含您的 main() 和 2) 包含所有库类。.EXE 项目然后引用 .DLL 项目。

两次重建同一个项目以获得 .dll 和 .exe 是很奇怪的。为什么不干净地分离关注点?

于 2011-07-20T19:59:25.637 回答