Frage

Wie kann ich Castle.Core, Castle.ActiveRecord und NHibernate baut teilweise Vertrauen zu erlauben? Es gibt viele Ressourcen im Internet zeigt, wie dies getan werden kann, aber jede Seite, die ich sagt gefunden nant build -D:assembly.allow-partially-trusted-callers=true zu verwenden, um jede Baugruppe zu bauen. Wenn ich mir die Castle.Core Stamm hier gibt es keine * .build Datei.

Wie kann dies erreicht werden? Ich bin mit .NET 3.5. Dies ist nicht eine Web-Anwendung.

Edit: Wir verwenden NHibernate 2.1.2GA (letzte stabile Version, glaube ich). Das Problem mit den folgenden Anweisungen ist, dass es sie sieht aus wie mit Bezug auf dem Aufbau Castle.Core und Castle.ActiveRecord vom Stamm. Trunk erscheint 3.0.0 zu erfordern NHibernate, die nicht unsere Version entspricht.

Lösung

Fast alle meine Optimierungen wurden in der Registerkarte Sicherheit unter Projekteigenschaften durchgeführt.

  • Im Rahmen der „Zone Ihre Anwendung von installiert werden:“ beschriften wähle ich „(Benutzerdefiniert)“
  • Was die für die Anwendung erforderlichen Berechtigungen, hatte ich SqlClientPermission sowie UIPermission aufzunehmen. Um zu negieren Probleme für I zukünftige Entwicklung ausgewählt „Baugruppen Grants uneingeschränkten Zugriff auf x“, wo die ausgewählte Berechtigung. Das war für beide Berechtigungen oben gezeigt getan. Beachten Sie, dass die Berechtigungen, die Sie umfassen auswählen, um auf einer Basis pro Anwendung sein wird, und keine zwei Fällen werden die gleichen sein.
  • Unter „Advanced ...“ Taste nicht ausgewählt ich beiden Optionen ( „Debug diese Anwendung mit dem ausgewählten Berechtigungssatz“ und „Schenkt die Anwendung Zugriff auf seine Ursprungsstelle“).

Da auch die Anwendung und SQL Server mit Wohnsitz unter verschiedenen Domains hatte ich meine Verbindungszeichenfolge, um die Datenbankserver-Domäne umfassen. Also meine ursprüngliche Datenquelle Verbindungszeichenfolge hatte von "Data Source = db_server" auf "Data Source = DB_SERVER.DOMAIN" zu gehen.

Schließlich musste ich Satz requirePermission="false" auf alle meine Konfigurationsabschnitte. Meine configSections wie dies endete:

  <configSections>
    <section name="activerecord" type="Castle.ActiveRecord.Framework.Config.ActiveRecordSectionHandler, Castle.ActiveRecord" requirePermission="false"/>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" requirePermission="false"/>
    <section name="nhibernate" type="System.Configuration.NameValueSectionHandler, System, Version=1.0.5000.0,Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"/>
    <section name="hibernate-configuration" requirePermission="false" type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate"/>
  </configSections>

Nachdem alles gesagt und getan Ich erfolgreich in der Lage war, diese Anwendung auf einer Dateifreigabe von einer anderen Domain zu veröffentlichen und haben die Benutzer die Anwendung ohne Probleme installieren. Die Anwendung dieser Schritte auf unsere anderen Anwendungen und mit unseren neu kompilierten Assemblys auch wie ein Charme.

War es hilfreich?

Lösung

Sie werden MSBuild müssen 4.0 , hat das Nant Build-Skripte da schon lange nicht mehr.

Wenn Sie Visual Studio 2010, öffnen Sie das Visual Studio 2010 Command Prompt sonst stellen Sie sicher, haben Sie verwenden MSBuild von .NET 4.0 Framework.

Da du hast NHibernate für APTCA gebaut (Nant -D: -D: assembly.allow-partiell-trusted-Anrufer = true Werke dre)

  • cd Kern

  • MSBuild buildscripts \ build.proj / p: AllowPartiallyTrustedCallers = true / P: Konfiguration = NET35-Veröffentlichung

  • Kopieren Castle.Core.dll aus dem Build-Ordner Active \ lib \ net35

  • cd Active

  • MSBuild buildscripts \ build.proj / P: AllowPartiallyTrustedCallers = true / p: Konfiguration = Freigabe /p:FrameworkVersion=v3.5 / p: BuildConfigKey = NET35

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top