Skip to content

Conversation

@jonpryor
Copy link
Contributor

Context: https://bugzilla.xamarin.com/show_bug.cgi?id=56633

Commit 8cc4acb (or thereabouts) broke .vsix file generation:

error MSB4174: The task factory "CodeTaskFactory" could not be found in the assembly
"/Library/Frameworks/Mono.framework/Versions/5.2.0/lib/mono/msbuild/15.0/bin/Microsoft.Build.Tasks.v4.0.dll".

(This works in mono/2017-02, fails with mono/2017-04.)

Fix .vsix generation by not using
Microsoft.VSSDK.BuildTools.15.0.26201\build\Microsoft.VSSDK.BuildTools.targets,
and instead copying and "fixing" the contents of
Microsoft.VSSDK.BuildTools.targets into create-vsix.targets.
In particular, the corrected <SetVsSDKEnvironmentVariables/> task
uses Microsoft.Build.Tasks.Core.dll, not
Microsoft.Build.Tasks.v4.0.dll.

@jonpryor jonpryor added the full-mono-integration-build For PRs; run a full build (~6-10h for mono bumps), not the faster PR subset (~2h for mono bumps) label May 24, 2017
@jonpryor
Copy link
Contributor Author

build

Context: https://bugzilla.xamarin.com/show_bug.cgi?id=56633

Commit 8cc4acb (or thereabouts) [broke `.vsix` file generation][0]:

	error MSB4174: The task factory "CodeTaskFactory" could not be found in the assembly
	"/Library/Frameworks/Mono.framework/Versions/5.2.0/lib/mono/msbuild/15.0/bin/Microsoft.Build.Tasks.v4.0.dll".

(This works in mono/2017-02, fails with mono/2017-04.)

Fix `.vsix` generation by *not using*
`Microsoft.VSSDK.BuildTools.15.0.26201\build\Microsoft.VSSDK.BuildTools.targets`,
and instead *copying and "fixing"* the contents of
`Microsoft.VSSDK.BuildTools.targets` into `create-vsix.targets`.
In particular, the corrected `<SetVsSDKEnvironmentVariables/>` task
uses `Microsoft.Build.Tasks.Core.dll`, *not*
`Microsoft.Build.Tasks.v4.0.dll`.

[0]: https://jenkins.mono-project.com/view/Xamarin.Android/job/xamarin-android/392/consoleText
@jonpryor jonpryor force-pushed the jonp-vsix-workaround branch from ef9b9f9 to a1cd9c6 Compare May 24, 2017 12:35
@jonpryor jonpryor removed the full-mono-integration-build For PRs; run a full build (~6-10h for mono bumps), not the faster PR subset (~2h for mono bumps) label May 24, 2017
@jonpryor jonpryor merged commit 4799ea2 into dotnet:master May 24, 2017
jonpryor pushed a commit that referenced this pull request Mar 16, 2020
Changes: dotnet/java-interop@27cfd45...bd7c60a

  * dotnet/java-interop@bd7c60a: [generator] Support //interface/@no-alternatives (#601)
  * dotnet/java-interop@105d544: [generator] Remove interface alternatives w/ interface-constants (#600)
  * dotnet/java-interop@b255981: [build] Remove extraneous `nuget restore`s (#599)
  * dotnet/java-interop@2a59c40: [CI] Specify our PR build trigger in YAML. (#598)
  * dotnet/java-interop@0a3354b: [Java.Interop.Tools.Cecil] use File.Exists instead of DirectoryGetFile (#596)

Reduces the `<LinkAssembliesNoShrink/>` task time from about 711ms to
426ms for a small test Xamarin.Forms app on an initial clean build.

Updates `generator --lang-features=interface-constants` output so that
we stop emitting the `*Consts` classes in API-R.

API Breakages:

  * `tests/api-compatibility/acceptable-breakages-v10.0.99.txt`:
    These are because we are no longer generating the `*Consts` types
    when for Default Interface Methods are enabled.

  * `tests/api-compatibility/acceptable-breakages-v10.0.txt`:
    These are because there was a bug where we were not generating
    `[Obsolete]` on fields that were turned into properties.  Now the
    attribute is generated in API-28 (the "contract"), but they are no
    longer marked as deprecated by Google in API-29
    (the "implementation"), so they appear as removing the attribute.

  * `tests/api-compatibility/acceptable-breakages-v8.0.txt`:
    As with v10.0, a "prop-ified" field was missing `[Obsolete]`, and
    Google later un-deprecated the field.
jonpryor pushed a commit that referenced this pull request Mar 16, 2020
Changes: dotnet/java-interop@35f30bf...a84d19e

  * dotnet/java-interop@a84d19e: [generator] Support //interface/@no-alternatives (#601)
  * dotnet/java-interop@f34ed03: [generator] Remove interface alternatives w/ interface-constants (#600)
  * dotnet/java-interop@c5b8aca: [CI] Specify our PR build trigger in YAML. (#598)
  * dotnet/java-interop@d589f1c: [Java.Interop.Tools.Cecil] use File.Exists instead of DirectoryGetFile (#596)

Reduces the `<LinkAssembliesNoShrink/>` task time from about 711ms to
426ms for a small test Xamarin.Forms app on an initial clean build.

Updates `generator --lang-features=interface-constants` output so that
we stop emitting the `*Consts` classes in API-R.

API Breakages:

  * `tests/api-compatibility/acceptable-breakages-v10.0.99.txt`:
    These are because we are no longer generating the `*Consts` types
    when for Default Interface Methods are enabled.

  * `tests/api-compatibility/acceptable-breakages-v10.0.txt`:
    These are because there was a bug where we were not generating
    `[Obsolete]` on fields that were turned into properties.  Now the
    attribute is generated in API-28 (the "contract"), but they are no
    longer marked as deprecated by Google in API-29
    (the "implementation"), so they appear as removing the attribute.

  * `tests/api-compatibility/acceptable-breakages-v8.0.txt`:
    As with v10.0, a "prop-ified" field was missing `[Obsolete]`, and
    Google later un-deprecated the field.
@github-actions github-actions bot locked and limited conversation to collaborators Feb 5, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants