アプリケーションのクリックワンス インストールの作成に取り組んでいます。
プロジェクトのプロパティの場合、[セキュリティ] タブで ClickOnce セキュリティ設定を完全信頼で有効にしています。ネットワーク ドライブに公開し、インストールを実行します。インストールは成功しましたが、アプリケーションを実行すると次のエラーが発生します。
.Net コードのPos を別の AppDomain で実行しています (.net 4 のデフォルト セキュリティ ポリシーの問題のため)。clickonce なしでローカル システムで正常に動作します。私のアプリケーションは Prism を使用しているため、マニフェストを変更して、動的にロードされるモジュールを含める必要がありました。これは、私が作成した AppDomain が完全に信頼されていないことに何らかの形で関連しています。
これは私が AppDomain を作成する方法です
AppDomainSetup currentAppDomainSetup = AppDomain.CurrentDomain.SetupInformation;
AppDomainSetup newAppDomainSetup = new AppDomainSetup()
{
ApplicationBase = currentAppDomainSetup.ApplicationBase,
LoaderOptimization = currentAppDomainSetup.LoaderOptimization,
ConfigurationFile = currentAppDomainSetup.ConfigurationFile,
PrivateBinPath = @"Modules" // need to set this so that the new AppDomain can see the prism modules
};
newAppDomainSetup.SetCompatibilitySwitches(new[] { "NetFx40_LegacySecurityPolicy" }); // required for POS for .Net to function properly
_posAppDomain = AppDomain.CreateDomain("POS Hardware AppDomain", null, newAppDomainSetup);
// Error happens on the following line. Note that type T is always in same assembly that AppDomain was created in.
T hardware = (T)PosAppDomain.CreateInstanceFromAndUnwrap(Assembly.GetAssembly(typeof(T)).Location, typeof(T).FullName);
不足しているセキュリティ設定はありますか?
近づいていると思います。私が作成した AppDomain は、clickonce なしで実行すると完全な信頼で実行されますが、clickonce で実行すると完全な信頼では実行されません....だから今、完全な信頼でそれを取得する方法を見つけようとしています。