Windows 2008 Server x64にMSBuildとInstallShieldを使用する際に問題があります。 InstallShieldチームが提供するMSBuildタスクを使用してInstallShieldプロジェクトをビルドしようとしましたが、C:\ Windows \ Microsoft.NET \ Framework \ 3.5 \からmsbuildを実行するとうまく動作します。 I`veは誤りだ\ 3.5 \ Frameworkのを\ NET:win2008 x64でInstallShield msbuildタスクをプログラムでビルドするにはどうすればよいですか?
The "InstallShield.Tasks.InstallShield" task could not be loaded from the assembly c:\Program Files (x86)\MSBUILD\InstallShield\2009\InstallShield.Tasks.dll. Could not load file or assembly 'file:///c:\Program Files (x86)\MSBUILD\InstallShield\2009\InstallShield.Tasks.dll' or one of its dependencies. An attempt was made to load a program with an incorrect format. Confirm that the declaration is correct, and that the assembly and all its dependencies are available.
をそして、いつもの "フレームワークのパスを使用しても大丈夫でしょうがx64のパスのinstaedしかし残念ながら、私はそのエンジンを使用してプログラムMSBUILDを使用する必要があります、 、それは2.0のバージョンのフレームワーク用と3.5用の2つのツールセットしか返しません。しかし、どちらもFramework64のパスの下にあります...自分のToolsetに '通常の' Frameworkディレクトリへのパスを追加しようとしました。私はレジストリとprogrammaticalyを介してそれをやろうとしましたが、動作しませんでした - DefaultToolsVersionは自分の値に設定されていました、パスはフレームワークに見えます、私のバージョンのToolsetはツールセットのコレクションに追加されました。 。プロジェクトをビルドです コード:
Project project = new Project(engine);
//Toolset customToolset = new Toolset("4.0", @"c:\windows\Microsoft.Net\Framework\v3.5\");
//engine.Toolsets.Add(customToolset);
//engine.DefaultToolsVersion = "4.0";
project.Load(args[0]);
MSBuildLogger logger = new MSBuildLogger();
engine.RegisterLogger(logger);
bool res = engine.BuildProjectFile(args[0]);
誰もが、私はそれを動作させるために何をすべきかのアイデアを持っていますか?
私はこの問題を、AnyCPUではないx86プラットフォームでコンパイルすると思われます。しかし、別の解決策があるかもしれませんか?