如何在我的 .csproj 文件中包含 DLL?

问题描述 投票:0回答:2

嗯,问题是我没有安装 Visual Studio 并且我不想安装它,所以,我制作了一个批处理文件来编译我的 .csproj 文件和所有源文件。

问题是我不知道如何包含.dll 文件。这是我的 .csproj 文件的当前代码:

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <AssemblyName>Project</AssemblyName>
    <OutputPath>Bin\</OutputPath>
  </PropertyGroup>

  <ItemGroup>
        <!-- .cs files -->
    <Compile Include="program.cs" />
  </ItemGroup>

  <Target Name="Build">
    <MakeDir Directories="$(OutputPath)"      Condition="!Exists('$(OutputPath)')" />
    <Csc Sources="@(Compile)" OutputAssembly="$(OutputPath)$(AssemblyName).exe" />
  </Target>
</Project>

我需要更改什么才能将 dll 文件包含/引用到编译过程中?

c# c#-4.0 msbuild compilation csproj
2个回答
31
投票

您将需要一个 ItemGroup,其中包含名为 Reference 的项目,如下所示:

<ItemGroup>
    <Reference Include="Microsoft.Practices.Unity" />
    <Reference Include="MvcMiniProfiler">
      <HintPath>..\packages\MiniProfiler.1.6\lib\MvcMiniProfiler.dll</HintPath>
    </Reference>
    <Reference Include="System" />
    <Reference Include="System.configuration" />
    <Reference Include="System.Core" />
    <Reference Include="System.Data.Entity" />
    <Reference Include="System.Runtime.Serialization" />
    <Reference Include="System.Security" />
    <Reference Include="System.Web" />
    <Reference Include="System.Xml.Linq" />
    <Reference Include="System.Data.DataSetExtensions" />
    <Reference Include="Microsoft.CSharp" />
    <Reference Include="System.Data" />
    <Reference Include="System.Xml" />
  </ItemGroup>

如果您引用非 GAC 的 dll,则需要放入 HintPath(请参阅 mvc 迷你分析器,这应该与您的构建文件位置相关),或者您需要将路径传递到 MSBuild 中ReferencePath 属性。


0
投票

您可以按如下方式简化.csproj中的引用:

<Reference Include="lib\someLib.dll" />

通配符也应该有效:

<Reference Include="lib\*.dll" />

来源:https://github.com/dotnet/sdk/issues/24816#issuecomment-1117948140

© www.soinside.com 2019 - 2024. All rights reserved.