[英]“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.