Pregunta

¿Cómo puedo construir Castle.Core, Castle.ActiveRecord y NHibernate para permitir confianza parcial? Hay un montón de recursos en la web que muestra cómo se puede hacer esto, sin embargo, cada sitio que encontré dice que use nant build -D:assembly.allow-partially-trusted-callers=true para construir cada montaje. Cuando miro el Castle.Core tronco aquí no hay ningún archivo .build *.

¿Cómo se puede lograr esto? Estoy utilizando .NET 3.5. Esto no es una aplicación web.

Editar: Estamos utilizando NHibernate 2.1.2GA (última versión estable, creo). El problema con las instrucciones que figuran a continuación es que se vea como su referencia a la construcción de Castle.Core y Castle.ActiveRecord del tronco. Tronco parece estar requiriendo NHibernate 3.0.0 que no coincide con nuestra versión.

Solución

Casi todos mis ajustes se realizaron en la ficha seguridad en las propiedades del proyecto.

  • En la "Zona se instalará la aplicación de:" Etiqueta he seleccionado "(Personalizado)"
  • En cuanto a los permisos requeridos por la aplicación, que tenía que incluir SqlClientPermission así como UIPermission. Con el fin de problemas Negate para el desarrollo futuro que seleccioné "Subvención montajes de acceso sin restricciones a x" dónde está el permiso seleccionado. Eso se hizo para los permisos se muestran arriba. Tenga en cuenta que los permisos que seleccione para incluir estarán en función de cada aplicación y no hay dos casos serán los mismos.
  • En el marco del "Advanced ..." botón I no seleccionadas ambas opciones ( "Depurar esta aplicación con el conjunto de permisos seleccionado" y "permitir el acceso de la aplicación a su lugar de origen").

Además, dado que la aplicación y SQL Server residen en diferentes dominios que tenía que poner mi cadena de conexión para incluir el dominio del servidor de base de datos. Así que mi fuente de datos de cadena de conexión original tuvo que ir de "Data Source = db_server" a "Data Source = DB_SERVER.DOMAIN".

Por último, tuve que requirePermission="false" conjunto en todas mis secciones de configuración. Mi configSections terminó así:

  <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>

Después de todo estaba dicho y hecho yo era capaz de publicar con éxito esta aplicación en un recurso compartido de archivos de un dominio diferente y tienen los usuarios instalar la aplicación sin problemas. La aplicación de estas medidas para las otras aplicaciones y el uso de nuestras asambleas recién compilados también trabajó como un encanto.

¿Fue útil?

Solución

Necesitará MSBuild 4.0 , los guiones Nant construcción han ido desde hace mucho tiempo.

Si usted tiene Visual Studio 2010, abra el Visual Studio 2010 Símbolo del sistema de otro modo asegurarse de que utiliza MSBuild del marco .NET 4.0.

suponiendo que tenemos NHibernate construido para APTCA (Nant -D: -D:-confianza parcial assembly.allow-llamadores = verdaderas obras de Thre)

  • cd Core

  • MSBuild buildscripts \ build.proj / p: AllowPartiallyTrustedCallers = true / P: Configuración = NET35 de liberación

  • Copiar Castle.Core.dll de la acumulación carpeta a ActiveRecord \ lib \ net35

  • cd ActiveRecord

  • MSBuild buildscripts \ build.proj / P: AllowPartiallyTrustedCallers = true / p: Configuración = Release /p:FrameworkVersion=v3.5 / p: BuildConfigKey = NET35

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top