簡體   English   中英

msbuild 失敗,缺少類型或命名空間名稱

[英]msbuild fails with type or namespace name missing

我有一個 C# 項目 (csproj) 和一個解決方案 (sln),我想通過msbuild.exe構建msbuild.exe

$ msbuild.exe foo.sln /m /t:Build /p:Configuration="Release"

這失敗了,這里有幾個錯誤:

(CoreCompile target) ->
     AppComboCommand.cs(9,7): error CS0246: The type or namespace name 'EnvDTE' could not be found
(are you missing a using directive or an assembly reference?) [foo.csproj]

在 Visual Studio 2019 中打開項目然后再次通過命令行重新構建后,這些錯誤消失了。 VS 好像在打開項目的時候生成了幾個文件,我想知道我在這里錯過了什么。 這可能是依賴問題嗎?

任何幫助都受到高度贊賞

EnvDTE只是用於擴展 Visual Studio 功能的 vs sdk dll,它通常存儲在 vs 本地文件夾中。

首先,您應該先確保已安裝Visual Studio extension development工作負載。 如果你使用 VS2019 的 Build Tool,你也應該記得檢查它。

在此處輸入圖片說明

請遵循這些:

1)如果你在本地引用了這個dll,請確保你已經通過右鍵單擊項目--> Add Reference -->引用C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\Common7\\IDE\\PublicAssemblies\\envdte.dll

  • 不推薦使用以下方法,對於 vs SDK DLL 引用,使用 nuget 是有風險的:

    如果您使用的NuGet安裝它EnvDTE它確實存在於nuget.org ,當你從命令行構建它,你應該運行nuget restore MySolution.sln第一。 MSBuild 命令行不會恢復丟失的包,這不是它的工作。

所以請先下載nuget.exe ,然后在腳本中添加:

$nuget="xxxxx\nuget.exe(the local path of the nuget.exe)"

$nuget restore `xxxxx\MySolution.sln`

然后執行構建過程。

2)我發現你使用powershell腳本來構建項目,所以請確保你使用的是VS2019的MSBuild而不是Net Framework( C:\\Windows\\Microsoft.NET\\Framework64\\v4.0.30319\\MSBuild.exe )。

$msbuild.exe="C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\MSBuild.exe"

如果你安裝了Build Tool for VS2019 ,你應該使用這個路徑:

C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\BuildTools\\MSBuild\\Current\\Bin\\MSBuild.exe

暫無
暫無

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

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