Я работаю над созданием установки для моего приложения.
У меня включены параметры безопасности ClickOnce с полным доверием на вкладке «Безопасность», если в свойствах проекта. Публикую на сетевой диск и запускаю установку. Установка прошла успешно, но когда я запускаю приложение, я получаю такую ошибку:
У меня есть код Pos для .Net в отдельный домен приложений (из-за проблем с политикой безопасности по умолчанию .net 4). Он отлично работает в моей локальной системе без единого щелчка. В моем приложении используется 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, он не запускается с полным доверием ... так что теперь я пытаюсь выяснить, как получить его с полным доверием.