Skip to content

Re-compile EE binaries against Phone references - #678

Closed
amcasey wants to merge 1 commit into
dotnet:masterfrom
amcasey:ConcordCopies
Closed

Re-compile EE binaries against Phone references#678
amcasey wants to merge 1 commit into
dotnet:masterfrom
amcasey:ConcordCopies

Conversation

@amcasey

@amcasey amcasey commented Feb 19, 2015

Copy link
Copy Markdown
Member

Even though they share the same APIs, the desktop and phone versions of
the Concord binaries have different strong names. In order to support
both scenarios, we have to produce each of our EE (product) binaries
twice: once referencing the desktop assemblies and again referencing the
phone assemblies.

Catch 1: There are no reference assemblies for the phone versions of the
Concord binaries, so we explicitly re-assemble the same reference IL with
a different strong name key.

Catch 2: We can't put two copies of each assembly in a single output
directory, so we reuse the existing Phone subdirectory and put both the
new references and the new outputs in there. We do not run our tests
against these assemblies since they differ only in strong name
(references).

Even though they share the same APIs, the desktop and phone versions of
the Concord binaries have different strong names.  In order to support
both scenarios, we have to produce each of our EE (product) binaries
twice: once referencing the desktop assemblies and again referencing the
phone assemblies.

Catch 1: There are no reference assemblies for the phone versions of the
Concord binaries, so we explicitly re-assemble the same reference IL with
a different strong name key.

Catch 2: We can't put two copies of each assembly in a single output
directory, so we reuse the existing Phone subdirectory and put both the
new references and the new outputs in there.  We do not run our tests
against these assemblies since they differ only in strong name
(references).
@amcasey amcasey self-assigned this Feb 19, 2015
@amcasey amcasey assigned jasonmalinowski and unassigned amcasey Feb 19, 2015
@amcasey

amcasey commented Feb 19, 2015

Copy link
Copy Markdown
Member Author

FYI @ManishJayaswal @KevinH-MS @cston

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since you're including the project after the GUID is set, the other project will overwrite this.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd be curious to know what shows up in the .sln file (whether VS cracks the project and reads this directly or uses the evaluated property from MSBuild). If it's the former, it might not matter that this is overwritten. If the latter, then yeah, we need a new property group below the Import...

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually, the Roslyn.sln changes are below...I could have just looked... :)

It seems like the sln file gets the ProjectGuid directly from the project file, so the overwriting shouldn't have any negative consequence.

@amcasey

amcasey commented Feb 19, 2015

Copy link
Copy Markdown
Member Author

FYI @pnelsonmsft

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should this be $(OutDir)Phone%(Identity).dll?

@jasonmalinowski

Copy link
Copy Markdown
Member

As privately discussed, there's a few problems with this: by having projects that other projects, the VS IDE won't properly reload projects and their contents. Either an approach with separate configurations or shared asset projects would mitigate those concerns.

@amcasey

amcasey commented Feb 19, 2015

Copy link
Copy Markdown
Member Author

As @jasonmalinowski mentioned above, we discussed a new approach offline, so you might want to hold off until I've posted a new iteration.

@amcasey

amcasey commented Feb 19, 2015

Copy link
Copy Markdown
Member Author

We're going to try to straighten out the strong-name signing of our references instead.

@amcasey amcasey closed this Feb 19, 2015
JoeRobich pushed a commit that referenced this pull request Sep 4, 2026
…d50345efcc5c

Localized file check-in by OneLocBuild Task: Build definition ID 10077: Build ID 6347393
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants