我對 .NET 相當陌生,我正在嘗試讓一個不再具有 .csproj 檔案的舊程式作業。我設法從創建者那里收到了一個舊的 .sln 檔案,并在 VS 中打開了解決方案。從我可以看出這是一個Developer Web Server專案?

這是問題所在。
檔案夾Smreka中有 2 個檔案,log.cs和smreka.cs. 包含類 Logger的log.cs實作,我試圖將其匯入到smreka.cs. 據我所知,它們都使用相同的命名空間Bum.Iglavci.Smreka,我應該能夠毫無問題地匯入 Logger 類。問題是編譯器看不到它。如果我嘗試使用 直接匯入它using static Bum.Iglavci.Smreka.Logger;,我會收到錯誤訊息Feature 'using static' is not available in C# 5. Please use language version 6 or greater。
我想知道為什么命名空間看不到對方。是因為我缺少 .csproj 檔案嗎?Developer Web Server 甚至需要 .csproj 檔案嗎?如果是這樣,生成一個的最佳方法是什么?
編輯:由于一些混亂,我將嘗試添加有關 log.cs 和 smreka.cs 外觀的更多詳細資訊。這些檔案實際上要長得多,但我認為這應該給出一個想法。
日志.cs:
namespace Bum.Iglavci.Smreka{
public class Logger{
public Logger(){
}
public void DoSomething(){}
}
}
smreka.cs:
namespace Bum.Iglavci.Smreka{
public class Baza{
private Logger log;
public Baza(){
log = new Logger();
}
}
}
編譯器不知道 Logger 在屬性下private Logger log;它說明了錯誤The type or namespace name 'Logger' could not be found (are you missing a using directive or an assembly reference?)
我認為命名空間放置正確,這就是為什么我覺得專案或解決方案本身有問題需要修復。
uj5u.com熱心網友回復:
由于兩個類都在同一個命名空間中,它們已經能夠相互使用。您只需執行以下操作即可訪問該課程。讓我們Log作為類來呼叫另一個類。
Log班級:
namespace Bum.Iglavci
{
public class Log
{
public static void ExecuteDoSomething()
{
Smreka.DoSomething();
}
}
}
Smerka班級:
namespace Bum.Iglavci
{
public class Smerka
{
public static void DoSomething()
{
//execute code here
}
}
}
uj5u.com熱心網友回復:
檔案的Buil Action屬性設定為
Nonethis 可能不會編譯檔案。將其設定為C# Compiler,這應該可以解決它。
如果您不知道如何訪問檔案的屬性。
- 右鍵單擊檔案
- 導航到
Properties串列底部 - 設定
Build Action為C# compiler(見圖)

uj5u.com熱心網友回復:
我沒有找到簡單的解決方案。我現在創建了一個新的 .net 框架應用程式專案并將檔案添加到新專案中。由于某種原因,命名空間現在可以正常作業,并且檔案可以在同一個命名空間中相互看到。
uj5u.com熱心網友回復:
是的,錯誤來自您沒有 .csproj 檔案的事實。
此類檔案包含構建專案時要編譯的檔案串列。僅僅擁有解決方案檔案是不夠的。
我建議使用 Visual Studio 閱讀有關專案和解決方案的一些資料:
- https://docs.microsoft.com/en-us/visualstudio/ide/solutions-and-projects-in-visual-studio?view=vs-2022
- https://docs.microsoft.com/en-us/visualstudio/get-started/tutorial-projects-solutions?view=vs-2022
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/466799.html
下一篇:作為自由單子的身份單子
