我正在尝试使用MSBuild来编译我的ASP.NET MVC3应用程序。由于DLL不需要Main
方法,并且我已指定目标是库,为什么编译器会抛出以下异常:
CSC : error CS5001: Program 'c:\MvcApplication1\web\bin\MvcApplication1.dll' does not contain a static 'Main' method suitable for an entry point[C:\MvcApplication1\web\MvcApplication1.csproj]
这是.csproj文件:
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<OutputType>Library</OutputType>
<AssemblyName>MvcApplication1</AssemblyName>
<OutputPath>bin\</OutputPath>
</PropertyGroup>
<ItemGroup>
<Compile Include="*.cs" />
</ItemGroup>
<ItemGroup>
<Reference Include="..\lib\*.dll" />
</ItemGroup>
<Target Name="Build">
<MakeDir Directories="$(OutputPath)" Condition="!Exists('$(OutputPath)')" />
<Csc References="@(Reference)" Sources="@(Compile)" OutputAssembly="$(OutputPath)$(AssemblyName).dll" />
<Copy SourceFiles="@(Reference)" DestinationFolder="$(OutputPath)" />
</Target>
</Project>
答案 0 :(得分:1)
Csc
应该TargetType
library
。默认值应该是Library(参见下面的MSDN),尽管在这种情况下似乎并非如此。
按如下方式更改<Csc
步骤:
<Csc TargetType="library" References="@(Reference)" .... />
来自MSDN重新 TargetType :
指定输出文件的文件格式。这个参数可以有 一个库的值,它创建一个代码库,exe,它创建一个 控制台应用程序,模块,创建模块,或winexe,其中 创建一个Windows程序。默认值为library。更多 信息,请参阅/ target(C#编译器选项)。