私は、呼び出されたときに C# プロジェクトをビルドする Web サービスを作成しています。私はフレームワーク 2 リファレンス、Microsoft.Buld.Engine および Microsoft.Build.Framework を使用しています。'<Import>' セクションの .csproj ファイルを見ると、既定では次のようになっています。
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
その後、次のように変更しました。
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
csproj をビルドするための私のコードは次のとおりです。
Engine buildEngine = new Engine(Path.Combine(Environment.GetEnvironmentVariable("SystemRoot"), @"Microsoft.NET\Framework\v2.0.50727"));
FileLogger logger = new FileLogger();
logger.Parameters = @"logfile=c:\temp\build.log";
buildEngine.RegisterLogger(logger);
bool success = buildEngine.BuildProjectFile([Path_Of_Directory]+ "ProjectName.csproj");
buildEngine.UnregisterAllLoggers();
ビルドが失敗したため、success 変数は false を返します。次に、build.log ファイルを確認すると、次のエラーが表示されます。
ビルド開始 2010 年 3 月 17 日 11:16:56 AM プロジェクト "[Path_Of_Directory]\ProjectName.csproj" (既定のターゲット): ターゲット GetFrameworkPaths: .NET Framework SDK が見つかりませんでした。タスクは、レジストリ キー HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft.NETFramework の SDKInstallRootv2.0 値で指定された場所にある .NET Framework SDK へのパスを探します。次のいずれかを実行すると、問題を解決できる場合があります。 1.) .NET Framework SDK をインストールします。2.) 上記のレジストリ キーを正しい場所に手動で設定します。目標
なぜビルドしないのか理解できません。どんな助けでも大歓迎です。ありがとう