0

我正在尝试使用 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>
4

1 回答 1

1

Csc应该有一个TargetTypelibrary默认应该是库(见下面的 MSDN),尽管在这种情况下似乎并非如此。

改变你<Csc的步骤如下:

<Csc TargetType="library" References="@(Reference)"  ....  />

MSDN重新TargetType

指定输出文件的文件格式。此参数的值可以是 library,它创建一个代码库,exe,它创建一个控制台应用程序,module,它创建一个模块,或 winexe,它创建一个 Windows 程序。默认值为库。有关详细信息,请参阅 /target(C# 编译器选项)。

于 2011-12-14T00:22:39.563 回答