Key: CONTRIB-55
URL: http://support.castleproject.org//browse/CONTRIB-55
Project: Contrib
Issue Type: Bug
Components: Generator
Environment: n/a
Reporter: Jonathan Lamont
I'm using the codeGenerator in my monorail project. It works fine if all my controller's actions are using only primitive parameters. If an action has an entity as a parameter, for example ( public void actionTest(User user) ) I get this error :
The "GenerateMonoRailSiteTreeTask" task failed unexpectedly.
System.TypeLoadException: Unable to resolve: Usager
Server stack trace:
at Castle.Tools.CodeGenerator.Services.TypeResolver.Resolve(String typeName, Boolean throwOnFail)
at Castle.Tools.CodeGenerator.Services.TypeResolver.ResolveTypeReference(TypeReference reference)
at Castle.Tools.CodeGenerator.Services.TypeResolver.Resolve(TypeReference reference)
at Castle.Tools.CodeGenerator.Services.ControllerVisitor.VisitMethodDeclaration(MethodDeclaration methodDeclaration, Object data)
at ICSharpCode.NRefactory.Ast.MethodDeclaration.AcceptVisitor(IAstVisitor visitor, Object data)
at ICSharpCode.NRefactory.Ast.AbstractNode.AcceptChildren(IAstVisitor visitor, Object data)
at ICSharpCode.NRefactory.Visitors.AbstractAstVisitor.VisitTypeDeclaration(TypeDeclaration typeDeclaration, Object data)
at Castle.Tools.CodeGenerator.Services.ControllerVisitor.VisitTypeDeclaration(TypeDeclaration typeDeclaration, Object data)
at ICSharpCode.NRefactory.Ast.TypeDeclaration.AcceptVisitor(IAstVisitor visitor, Object data)
at ICSharpCode.NRefactory.Ast.AbstractNode.AcceptChildren(IAstVisitor visitor, Object data)
at ICSharpCode.NRefactory.Visitors.AbstractAstVisitor.VisitNamespaceDeclaration(NamespaceDeclaration namespaceDeclaration, Object data)
at Castle.Tools.CodeGenerator.Services.TypeResolvingVisitor.VisitNamespaceDeclaration(NamespaceDeclaration namespaceDeclaration, Object data)
at ICSharpCode.NRefactory.Ast.NamespaceDeclaration.AcceptVisitor(IAstVisitor visitor, Object data)
at ICSharpCode.NRefactory.Ast.AbstractNode.AcceptChildren(IAstVisitor visitor, Object data)
at ICSharpCode.NRefactory.Visitors.AbstractAstVisitor.VisitCompilationUnit(CompilationUnit compilationUnit, Object data)
at Castle.Tools.CodeGenerator.MsBuild.GenerateMonoRailSiteTreeTask.Execute()
at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs)
at System.Runtime.Remoting.Messaging.StackBuilderSink.PrivateProcessMessage(RuntimeMethodHandle md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs)
at System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg, Int32 methodPtr, Boolean fExecuteInContext)
Exception rethrown at [0]:
at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
at Microsoft.Build.Framework.ITask.Execute()
at Microsoft.Build.BuildEngine.TaskEngine.ExecuteTask(ExecutionMode howToExecuteTask, Hashtable projectItemsAvailableToTask, BuildPropertyGroup projectPropertiesAvailableToTask, Boolean& taskClassWasFound)
/************************************************************************/
Is there a way to define our references? Or an other way to fix that?
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://support.castleproject.org//secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
I have a Castle.Tools.CodeGenerator folder in Program Files\MSBuild
which contains:
Castle.Tools.CodeGenerator.dll
Castle.Tools.CodeGenerator.targets
ICSharpCode.NRefactory.dll
which is created when I build the code generator solution. Here's what
the targets file contains:
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<CodeGeneratorAssembly Condition="'$(CodeGeneratorAssembly)' ==
''">$(MSBuildExtensionsPath)\Castle.Tools.CodeGenerator
\Castle.Tools.CodeGenerator.dll</CodeGeneratorAssembly>
<SiteMapFileName Condition="'$(SiteMapFileName)' ==
''">SiteMap.generated.cs</SiteMapFileName>
<SiteMapNamespace Condition="'$(SiteMapNamespace)' == ''">$
(RootNamespace).SiteMap</SiteMapNamespace>
<BuildDependsOn>
GenerateMonoRailSiteTree;
$(BuildDependsOn)
</BuildDependsOn>
</PropertyGroup>
<ItemGroup Condition="'@(ControllerSources)' == ''">
<ControllerSources Include="$(MSBuildProjectDirectory)\Controllers
\**\*.cs">
<InProject>false</InProject>
</ControllerSources>
</ItemGroup>
<ItemGroup Condition="'@(ViewSources)' == ''">
<ViewSources Include="$(MSBuildProjectDirectory)\Views\**\*.aspx">
<InProject>false</InProject>
</ViewSources>
<ViewSources Include="$(MSBuildProjectDirectory)\Views\**
\*.brail">
<InProject>false</InProject>
</ViewSources>
<ViewSources Include="$(MSBuildProjectDirectory)\Views\**
\*.brailjs">
<InProject>false</InProject>
</ViewSources>
<ViewSources Include="$(MSBuildProjectDirectory)\Views\**\*.vm">
<InProject>false</InProject>
</ViewSources>
<ViewSources Include="$(MSBuildProjectDirectory)\Views\**\*.njs">
<InProject>false</InProject>
</ViewSources>
</ItemGroup>
<UsingTask
TaskName="Castle.Tools.CodeGenerator.MsBuild.GenerateMonoRailSiteTreeTask"
AssemblyFile="$(CodeGeneratorAssembly)"/>
<Target Name="GenerateMonoRailSiteTree"
DependsOnTargets="ResolveReferences">
<Message Text="$(OutputPath) ---------" />
<Message Text="MSBuild Project DIrectory: $
(CodeGeneratorAssembly)" />
<GenerateMonoRailSiteTreeTask OutputFile="$(SiteMapFileName)"
Namespace="$(SiteMapNamespace)"
ControllerSources="@(ControllerSources)"
ViewSources="@(ViewSources)"
Sources="@(Compile)"
AssemblyReferences="@(ReferencePath);@(_ResolvedProjectREferencePaths)">
</GenerateMonoRailSiteTreeTask>
</Target>
</Project>
On 13 Sep, 21:48, "Jonathan Lamont (JIRA)"
public partial class MyController : SmartDispatcherController {
public void Show(Model1 m) {}
.....
When you 'optimize usings' R# 3.0 will change that MyApp.Models to
Models and then parsing will fail to find the type, if you change it
back to MyApp.Models it will work successfully.
On Sep 14, 5:06 am, Lee Henson <lee.m.hen...@gmail.com> wrote:
> I've got non-primitive objects in my actions without any exceptions
> being thrown by the code generator. I think you may be missing the
> targets file. chriso posted some stuff in this thread about that:
>
> http://groups.google.com/group/castle-project-devel/browse_thread/thr...
see http://groups.google.com/group/castle-project-devel/browse_thread/thread/7876c0c37ba854cf