![](/img/trans.png)
[英]How to correctly remove NUnit3TestAdapter from csproj project file
[英]How to determine MVC project from .csproj file
我正在研究擴展,我想通過它確定當前項目是否在 MVC 框架上。 我正在以編程方式檢查這個 in.csproj 文件。 項目可以在 ASP.NET 內核 Web 或 ASP.NET ZC6E190B284633C48E39E5504ZCCE8Z 應用。
如果我的應用程序是 MVC,我想知道將幫助我返回 true 的特定檢查/條件。
謝謝
好吧,可以將 MVC 功能添加到任何項目中,因此沒有簡單的方法可以從 proj 文件中分辨出來。 但通常,如果它是在 Visual Studio 中創建為 MVC 項目,那么它將具有 MVC 項目類型 GUID 之一。
這些取自這里。
ASP.NET MVC 1 {603C0E0B-DB56-11DC-BE95-000D561079B0}
ASP.NET MVC 2 {F85E285D-A4E0-4152-9332-AB1D724D3325}
ASP.NET MVC 3 {E53F8FEA-EAE0-44A6-8774-FFD645390401}
ASP.NET MVC 4 {E3E379DF-F4C6-4180-9B81-6769533ABE47}
ASP.NET MVC 5 {349C5851-65DF-11DA-9384-00065B846F21}
Model-View-Controller v2 (MVC 2) {F85E285D-A4E0-4152-9332-AB1D724D3325}
Model-View-Controller v3 (MVC 3) {E53F8FEA-EAE0-44A6-8774-FFD645390401}
Model-View-Controller v4 (MVC 4) {E3E379DF-F4C6-4180-9B81-6769533ABE47}
Model-View-Controller v5 (MVC 5) {349C5851-65DF-11DA-9384-00065B846F21}
Net Core 有預處理器定義,當項目在 ASP.NET Core 中運行時,您可以使用它來設置一個常量
#if NETSTANDARD1_6
public const IsCore = true;
#elif NETSTANDARD1_5
public const IsCore = true;
#elif NETSTANDARD1_4
public const IsCore = true;
#elif NETSTANDARD1_3
public const IsCore = true;
#elif NETSTANDARD1_2
public const IsCore = true;
#elif NETSTANDARD1_1
public const IsCore = true;
#elif NETSTANDARD1_0
public const IsCore = true;
#else
public const IsCore = false;
#endif
或者,如果您(可以)將以下內容添加到 your.csproj,則可以使用更簡單的形式,在發布新框架時不需要修改:
在.csproj 中:
<PropertyGroup Condition="$([System.Text.RegularExpressions.Regex]::IsMatch('$(TargetFramework)', '^netcoreapp\d'))">
<DefineConstants>NETCORE</DefineConstants>
</PropertyGroup>
以下代碼用於設置常量:
#if NETCORE
public const IsCore = true;
#else
public const IsCore = false;
#endif
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.