私は非常に単純なプログラムを持っています:
using System;
using System.Windows.Forms;
using System.Text;
using System.IO;
namespace NS
{
class Program
{
[STAThread]
static void Main(string[] args)
{
try
{
Console.SetIn(new StreamReader(Console.OpenStandardInput(2000)));
//get some content using Console.ReadLine() and prompting using Console.WriteLine();
string HTML =
string.Format(@"HTML redacted", someFormatString, w/e);
Clipboard.SetText(HTML);
Console.ReadKey(true);
string JS = string.Format(@"JS redacted", someFormatString, w/e);
Clipboard.SetText(JS);
Console.WriteLine("Press any key to continue...");
Console.ReadKey(true);
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}
}
}
}
補足: はい、メインの周りに try/catch をラップするのは好ましくないことはわかっていますが、今はデバッグの目的で必要です。
私はすべての適切なアセンブリを参照しています。csproj のアセンブリ参照は次のとおりです。
<Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" />
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
ただし、エクスプローラーからロードしようとすると、0xc000142 が表示されます。意味がわからないけど。
ただし、CMDからロードすると完全に機能します。
何か案は?参照を追加し、System.Windows Clipboard クラスに変更し、新しいプロジェクトを作成してコードをコピーしようとしましたが、何も効果がありませんでした。
編集:これは明確ではないようです:これはフォームでクリップボードクラスを使用する必要があるコンソールアプリです。Forms/CLI アプリになろうとしているわけではありません。