Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Evaluate (and perform) csproj format update #3944

Closed
Vogel612 opened this issue Apr 18, 2018 · 8 comments
Closed

Evaluate (and perform) csproj format update #3944

Vogel612 opened this issue Apr 18, 2018 · 8 comments
Assignees
Labels
difficulty-02-ducky Resolving these involves the internal API, but with relatively easy problems to solve. discussion technical-debt This makes development harder or is leftover from a PullRequest. Needs to be adressed at some point. up-for-grabs Use this label in conjunction with a difficulty level label, e.g. difficulty-02-ducky

Comments

@Vogel612
Copy link
Member

The csproj files are a regular source of pain for pull-requests dealing with moving stuff around and just general development.
MS did add a new csproj format that can use globbing and other cool (read: basic) features that are useful for remotely human readable project control.

The following guide can help migrate an old configuration to a new one: https://www.natemcmaster.com/blog/2017/03/09/vs2015-to-vs2017-upgrade/

@Vogel612 Vogel612 added discussion up-for-grabs Use this label in conjunction with a difficulty level label, e.g. difficulty-02-ducky technical-debt This makes development harder or is leftover from a PullRequest. Needs to be adressed at some point. difficulty-02-ducky Resolving these involves the internal API, but with relatively easy problems to solve. labels Apr 18, 2018
@rubberduck203
Copy link
Member

Just a word of caution, this change will break compatibility with VS2013 & VS2015.

If we do this, all contributors need to be using the latest version of Visual Studio.

@MDoerner
Copy link
Contributor

I think we are forced to use VS2017 for some time already because we are using C#7.1 and VS does not ship with a compiler for it prior to VS2017.

@Vogel612
Copy link
Member Author

Vogel612 commented Apr 18, 2018

note that for our wpf stuff. dotnet/sdk#491 might be relevant

@rubberduck203
Copy link
Member

Ok. Cool. I know I’m out of the loop. Just wanted to make sure we didn’t break any contributors. It’s because of y’all I don’t have to worry about the project after all.

@mungojam
Copy link

You can give this converter a go if you like. It's just had WPF support added. This nearly merged pull request should lead to a really neat project file afterwards, though it's pretty easy to manually tidy up anyway.

@hvanbakel
Copy link

That PR is now merged. Updating the readme now on how to use as a net core global tool 😄

@Vogel612 Vogel612 self-assigned this Sep 16, 2018
@Vogel612
Copy link
Member Author

I've been battling MSBuild for a few hours now to migrate at least some of the satellite assemblies to the new csproj format. Rubberduck.Deployment has been a bit ... resistant, though.

I'm not sure what to make of the following error that shows when trying to run tlbexp on Rubberduck.dll for the 64-bit tlb:

3>Running tlbexp.exe
3>cmd = C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\tlbexp.exe
3>Microsoft (R) .NET Framework Assembly to Type Library Converter 4.6.1055.0
3>Copyright (C) Microsoft Corporation. All rights reserved.
3>
3>Assembly exported to 'F:[..]\Rubberduck\Rubberduck.Deployment\bin\Debug\net46\Rubberduck.x32.tlb'
3>Generated 32-bit TLB
3>Microsoft (R) .NET Framework Assembly to Type Library Converter 4.6.1055.0
3>Copyright (C) Microsoft Corporation. All rights reserved.
3>
3>F:[..]\Rubberduck\Rubberduck.Deployment\BuildRegistryScript.ps1 :
3>TlbExp : warning TX00131175: When cross-compiling, all type library references should be
3>included on the command line to ensure the correct bit-specific type libraries are loaded.
3>In Zeile:1 Zeichen:1
3>+ & 'F:[..]\Rubberduck\Rubberduck.Deployment\ ...
3>+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3> + CategoryInfo : NotSpecified: (:) [Write-Error], WriteErrorException
3> + FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException,BuildRegistryScript.ps1
3>
3>F:[..]\Rubberduck\Rubberduck.Deployment\Rubberduck.Deployment.csproj(78,5): error MSB3073: The command "%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Bypass -command "& 'F:[..]\Rubberduck\Rubberduck.Deployment\BuildRegistryScript.ps1' -config 'Debug' -builderAssemblyPath 'F:[..]\Rubberduck\Rubberduck.Deployment\bin\Debug\net46\Rubberduck.Deployment.dll' -netToolsDir 'C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools' -wixToolsDir 'F:[..]\Rubberduck\Rubberduck.Deployment\WixToolset' -sourceDir 'F:[..]\Rubberduck\Rubberduck.Deployment\bin\Debug\net46' -targetDir 'F:[..]\Rubberduck\Rubberduck.Deployment\bin\Debug\net46' -projectDir 'F:[..]\Rubberduck\Rubberduck.Deployment' -includeDir 'F:[..]\Rubberduck\Rubberduck.Deployment\InnoSetup\Includes' -filesToExtract 'Rubberduck.dll|Rubberduck.API.dll'"" exited with code 1.
3>Done building project "Rubberduck.Deployment.csproj" -- FAILED.

Any help is appreciated

@bclothier
Copy link
Contributor

I feel like there's missing data in there. For one thing, it's not all that clear whether it's actually erroring with the TLB generation. It might be actually failing on the heat.exe at line 223.

Note that the error before the separator is cut off:

3>+ & 'F:[..]\Rubberduck\Rubberduck.Deployment\ ...

and that isn't the path to the SDK where the tlbexp.exe would be defined. However, heat.exe would be a package within the Rubberduck project's packages folder.

I would uncomment the lines 161-175 and verify that all the variables are sane and perhaps test with manual execution of the tools in the script to see if the error can be reproduced.

Vogel612 added a commit to Vogel612/Rubberduck that referenced this issue Sep 18, 2018
Vogel612 added a commit to Vogel612/Rubberduck that referenced this issue Sep 23, 2018
Vogel612 added a commit to Vogel612/Rubberduck that referenced this issue Sep 26, 2018
Vogel612 added a commit to Vogel612/Rubberduck that referenced this issue Oct 2, 2018
Vogel612 added a commit to Vogel612/Rubberduck that referenced this issue Oct 2, 2018
Vogel612 added a commit to Vogel612/Rubberduck that referenced this issue Oct 7, 2018
Vogel612 added a commit to Vogel612/Rubberduck that referenced this issue Oct 13, 2018
IvenBach pushed a commit to IvenBach/Rubberduck that referenced this issue Oct 31, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
difficulty-02-ducky Resolving these involves the internal API, but with relatively easy problems to solve. discussion technical-debt This makes development harder or is leftover from a PullRequest. Needs to be adressed at some point. up-for-grabs Use this label in conjunction with a difficulty level label, e.g. difficulty-02-ducky
Projects
None yet
Development

No branches or pull requests

6 participants