MSBuild编译目标是否为类生成dll?
我有一个VB类,当我运行时:MSBuild编译目标是否为类生成dll?,msbuild,msbuild-task,msbuild-4.0,msbuild-buildengine,Msbuild,Msbuild Task,Msbuild 4.0,Msbuild Buildengine,我有一个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)。输出
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脚本的标准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>
释放
您应该将项目分为两个项目。1) .EXE包含main()和2)包含所有库类。然后.EXE项目引用.DLL项目
两次重建同一个项目以获得.dll和.exe是非常奇怪的。为什么不将关注点清晰地分开?您应该将项目分为两个项目。1) .EXE包含main()和2)包含所有库类。然后.EXE项目引用.DLL项目
两次重建同一个项目以获得.dll和.exe是非常奇怪的。为什么不清楚地分离关注点?这可以通过调用MSbuild的编译任务来完成 因此,编写一个任务来使用VBC编译器任务将类编译成dll就可以了 在Rest中,默认编译任务将为主模块生成exe
就是这样 这可以通过调用MSbuild的编译任务来完成 因此,编写一个任务来使用VBC编译器任务将类编译成dll就可以了 在Rest中,默认编译任务将为主模块生成exe
就是这样 好吧,好吧,它只生成1个exe/dll很好,但是,我想出了一个更好的方法,通过从构建目标调用Vbc任务并自定义将我们的代码编译为dll,通过这种方式-我用一个项目文件同时获得exe和dll。我会争辩说,一个项目文件并不更好,因为Visual Studio不会完全理解此类设置。您现在可能不需要它,但不必要地违反标准通常是个坏主意。好吧,好吧,它只会生成1个exe/dll,这很好,但是,我找到了一个更好的方法,从构建目标调用Vbc任务并自定义将代码编译为dll,通过这种方式-我用一个项目文件获得了exe和dll。我认为一个项目文件并不更好,因为Visual Studio不会完全理解这种设置。您现在可能不需要它,但不必要地违反标准通常是个坏主意。这就是为什么!但我认为这可以在没有2个项目文件和1个构建过程的情况下完成!就是这样!但我认为这可以在没有2个项目文件和1个构建过程的情况下完成!