我有一个 VB 类,当我运行时:
msbuild /t:Compile
它还为包含该类的已编译代码的应用程序生成 Exe。
我想在 myfolder 文件夹中为我的 VB 类创建一个单独的 dll。
What extra arguments do I have to pass, in order to get my dll in myfolder ?
任何帮助表示赞赏!
我有一个 VB 类,当我运行时:
msbuild /t:Compile
它还为包含该类的已编译代码的应用程序生成 Exe。
我想在 myfolder 文件夹中为我的 VB 类创建一个单独的 dll。
What extra arguments do I have to pass, in order to get my dll in myfolder ?
任何帮助表示赞赏!
如果您遵循 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>
这可以通过调用 MSbuild 的编译任务来完成。
因此,编写一个任务来使用 VBC 编译器任务将类编译为 dll 就可以了。
休息,默认编译任务会生成主模块的exe。
就是那样 !
您应该将您的项目分成 2 个项目。1) .EXE 包含您的 main() 和 2) 包含所有库类。.EXE 项目然后引用 .DLL 项目。
两次重建同一个项目以获得 .dll 和 .exe 是很奇怪的。为什么不干净地分离关注点?