簡體   English   中英

“找不到類型或名稱空間名稱”

[英]“The type or namespace name could not be found”

我使用MSBuild 14.0版。

按照此處的文檔,我定義了自己的Build任務,如下所示:

<Target Name="Build" 
        Inputs="@(Compile)"
        Outputs="MyLibrary.dll">

        <Csc 
            Sources="@(Compile)"
            Resources="@(EmbeddedResource)" 
            References="@(Reference);@(ProjectReference)" 
            OutputAssembly="MyLibrary.dll"/>
</Target> 

在我的ItemGroup ,有一個項目引用列表,例如:

<ProjectReference Include="..\SubFolder1\SubFolder2\SubFolder3\ProjectReference1.csproj">
  <Project>{A3DBEB8E-997D-4F88-A56C-B45647EB5C29}</Project>
  <Name>ProjectReference1</Name>
  <Private>False</Private>
</ProjectReference>
<ProjectReference Include="..\SubFolder1\SubFolder2\ProjectReference2.csproj">
  <Project>{8bd1049a-afe2-44c1-8ecc-020000ec13ab}</Project>
  <Name>ProjectReference2</Name>
  <Private>False</Private>
</ProjectReference>

當我運行命令MSBuild.exe C:\\Workspaces\\MyProject.csproj /t:build ,我看到了很長的錯誤消息列表,如下所示:

File1.cs(27,79): error CS0246: The type or namespace name 'Type1' could no
t be found (are you missing a using directive or an assembly reference?) [C:\Workspaces\MyProject.csproj]

Type1是在.csproj文件中包含的項目引用之一中定義的。

即使我在CSC任務中指定“ References字段應包含項目引用,為什么MSBuild也會引發這些錯誤? 我應該怎么做才能確保我的項目成功構建?

您將構建目標定義為僅調用Csc。 Csc任務只是csc.exe的包裝,它的Reference屬性是csc.exe的/ reference選項,它需要匯編程序:msbuild文件的ProjectReference對其沒有任何意義。 您必須先構建這些項目,然后將其輸出程序集傳遞給Reference屬性。 基本上,這是Visual Studio創建的適當的項目文件自動為您執行的操作(它會首先構建ProjectReferences-如果過時了,請弄清楚輸出程序集是什么,然后將其添加到References中),所以我建議您以此為起點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM