我試圖在Visual Studio代碼2017中創建(簡單)Windows窗體應用程序。可悲的是我無法使用完整的VS版本,所以我沒有用於創建新項目的菜單選項。在C#中使用`dotnet new`創建Windows窗體應用程序
此前,我已經通過在VSC中的終端運行dotnet new console
來創建控制檯項目。但是,我無法得到這個與表單應用程序一起工作。
以下擴展名從市場安裝:
我試了一下:
創建控制檯應用程序,並引用using System.Windows.Forms;
:但是,這需要我來引用這個命名空間:
The type or namespace 'Forms' does not exist in the namespace "System.Windows"
所以我試圖用NuGet Package Manager: Add Package
命令添加這個命令,但是在這裏我找不到包System.Windows.Forms
。我能想到的
最後一件事是手工添加到.csproj的文件的引用:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.0</TargetFramework>
<RuntimeIdentifiers>win7-x64</RuntimeIdentifiers>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Newtonsoft.Json" Version="10.0.3"/>
<PackageReference Include="System.Windows.Forms" HintPath = "\..\WINDOWS\Microsoft.NET\Framework\v4.0.30319"/>
</ItemGroup>
</Project>
但運行dotnet restore
時,這給了警告:
warning NU1604: Project dependency System.Windows.Forms does not contain an inclusive lower bound. Include a lower bound in the dependency version to ensure consistent restore results.
warning NU1701: Package 'System.Windows.Forms 4.0.0' was restored using '.NETFramework,Version=v4.6.1' instead of the project target framework '.NETCoreApp,Version=v2.0'. This package may not be fully compatible with your project.
而且運行時給出了以下例外:
System.BadImageFormatException: Could not load file or assembly 'System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'. Reference assemblies should not be loaded for execution. They can only be loaded in the Reflection-only loader context. (Exception from HRESULT: 0x80131058) ---> System.BadImageFormatException: Cannot load a reference assembly for execution.
創建一個.cs文件,並使用csc
進行編譯。這樣我可以使用Forms
,但我失去了處理其他依賴關係的功能dotnet
。
問題
我覺得這個問題患有XY問題。我是C#和.NET的新手,所以我不確定自己在哪裏失敗,無論我嘗試做甚至是可能的。
所以我的問題是,如何使用dotnet new
命令創建Windows窗體應用程序?
也許這可以幫助:https://stackoverflow.com/documentation/winforms/1018/getting-started-with-winforms/11054/creating- a-simple-c-sharp-winforms-application-using-a-text-editor#t = 201710051003564647005(注意,這是SO文檔,可能會遲早消失) –
@PeterB文檔已經停止使用,文章沒有任何內容這個問題 – EpicKip
@PeterB這就是我用於嘗試2.但是,這打破了'Newtonsoft.Json'包的導入。這完全是一個不同的問題。由於這不會直接成爲解決方案,所以我很想知道是否可以使用'dotnet'。 – JAD