[Mono-bugs] [Bug 680904] New: Resources.Designer.cs shouldn't be kept under source control

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Fri Mar 18 12:37:53 EDT 2011



           Summary: Resources.Designer.cs shouldn't be kept under source
    Classification: Mono
           Product: MonoDroid
           Version: SVN
          Platform: Other
        OS/Version: Other
            Status: NEW
          Severity: Enhancement
          Priority: P5 - None
         Component: Tools
        AssignedTo: mkestner at novell.com
        ReportedBy: jpryor at novell.com
         QAContact: mono-bugs at lists.ximian.com
          Found By: ---
           Blocker: ---

User-Agent:       Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_6; en-US)
AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.127 Safari/534.16

Resources.Designer.cs is currently part of the project and (usually) part of
source control, which can be problematic with TFS users who have the file
marked as Read Only.

Possible fix: 

A file doesn't have to be statically in the project to provide
Intellisense...to satisfy yourself of this, you can create a WPF project,
reference App.Main() from somewhere, and see how Intellisense handles it. This
function is defined in obj\x86\Debug\App.g.cs, which is automatically generated
and added to the project at build time. This way, it never gets checked in, but
Intellisense still works just like any other file.

I was able to make this work with the following steps:

1) In the Android .csproj file, remove the <Compile
Include="Resource.designer.cs" /> element
2) Change the "AndroidResgenFile" property to
$(IntermediateOutputPath)\Resource.designer.cs (optional, but cleaner, since
build output shouldn't be intermixed in the same directory with source code)
3) Add an [Output] attribute to the AndroidResgen.ResgenOutputFile property (I
used ildasm\ilasm for this, for testing purposes)
4) In Program Files\MSBuild\Novell\Novell.MonoDroid.Common.targets, add the
following inside the <AndroidResgen /> element: 
    <Output TaskParameter="ResgenOutputFile" ItemName="Compile" />

Now if you build your project, you should end up with a Resource.designer.cs
that's exactly the same as what you have now, but is tucked away with the other
intermediate build files and doesn't show up in the Solution Explorer, which
therefore won't get checked into source control and cause problems. I tried
this and verified that Intellisense works exactly as it did before. I even
added a doc comment to one of my string resources and verified that it still
showed up correctly, in case you ever want to put the name of the file that
generated it there or something.

    -- Ryan Milligan

Reproducible: Always

Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.

More information about the mono-bugs mailing list